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
广告