寻找纸牌游戏获胜者的 C++ 程序
假设我们有一个数字 n,两个数组 A 和 B 的大小分别为 k1 和 k2。Amal 和 Bimal 正在玩有趣的纸牌游戏。有 n 张卡片,编号为 1 到 n。最初,卡片在它们之间分配。游戏进行如下:在每一轮,每个玩家拿出他们的一张牌(无论他们想要什么)并放在桌子上,这样其他玩家就看不到他们选择了哪张牌。然后,两张牌都被公开,牌号较大的玩家将两张牌都拿在手中。每张牌都可以玩任意次数。A代表Amal打出的牌,B代表Bimal打出的牌。如果玩家没有任何牌,他就输了。我们必须找到最终的赢家。
所以,如果输入像 n = 5; A = [3, 2]; B = [5, 1, 4],那么输出将是 Bimal,因为最初他们在玩 (3, 5),Bimal 拿走所有牌,然后打 (3, 1) Amal 拿走两张牌,然后如果他们打 ( 3, 4) Bimal 拿走所有,然后如果 Amal 打出 1,Bimal 会用卡片 5 拿走他们,所以 Amal 的手上没有卡片。
脚步
为了解决这个问题,我们将遵循以下步骤 -
d := 0e := 0
for initialize i := 0, when i < size of A, update (increase i by 1),
do:
f := A[i]
if d < f, then:
d := f
for initialize i := 0, when i < size of A, update (increase i by 1),do:
f := A[i]
if e < f, then:
e := f
if d > e, then:
return "Amal"
Otherwise
return "Bimal"
示例
让我们看看以下实现以更好地理解 -
#include<bits/stdc++.h>using namespace std;
string solve(int n, vector<int> A, vector<int> B){
int d = 0;
int e = 0;
for(int i = 0; i<A.size(); i++){
int f = A[i];
if (d < f)
d = f;
}
for(int i = 0; i<A.size(); i++){
int f = A[i];
if(e < f)
e = f;
}
if (d > e)
return "Amal";
else
return "Bimal";
}
int main(){
int n = 5;
vector<int> A = {3, 2};
vector<int> B = {5, 1, 4};
cout << solve(n, A, B) << endl;
}
输入
5, {3, 2}, {5, 1, 4}输出结果
Bimal
以上是 寻找纸牌游戏获胜者的 C++ 程序 的全部内容, 来源链接: utcz.com/z/297458.html