C++程序:求解取球游戏的获胜者


假设我们有四个数字n1、n2、k1和k2。考虑有两个盒子,第一个盒子有n1个球,第二个盒子有n2个球。Amal和Bimal在玩游戏。他们每一步可以从盒子中取出1到k1个球扔掉,另一个玩家在他的回合中可以从另一个盒子中取出1到k2个球。Amal先开始游戏,他们轮流进行。无法进行操作的一方输掉游戏。我们需要找到谁将是赢家。

所以,如果输入是这样的:n1 = 2;n2 = 2;k1 = 1;k2 = 2,那么输出将是Bimal,因为每个盒子都有2个球。Amal从第一个盒子中取走一个球,然后Bimal可以从第二个盒子中取走1个或2个球。无论Amal如何行动,如果Bimal采取最佳策略,他总是可以获胜。

步骤

为了解决这个问题,我们将遵循以下步骤:

if n1 > n2, then:
   return "Amal"
Otherwise
   return "Biaml"

示例

让我们来看下面的实现来更好地理解:

#include <bits/stdc++.h>
using namespace std;

string solve(int n1, int n2, int k1, int k2) {
   if (n1 > n2)
      return "Amal";
   else
      return "Biaml";
}
int main() {
   int n1 = 2;
   int n2 = 2;
   int k1 = 1;
   int k2 = 2;
   cout << solve(n1, n2, k1, k2) << endl;
}

输入

2, 2, 1, 2

输出

Biaml

更新于:2022年3月4日

浏览量:191

开启你的职业生涯

完成课程获得认证

开始学习
广告