寻找纸牌游戏获胜者的 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 := 0

e := 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

回到顶部