预测C ++硬币游戏的获胜者
在此游戏中,有X和Y两个玩家。我们的任务是预测如果双方都发挥最佳状态且X开始游戏,谁将赢得比赛。
游戏
在硬币游戏中,有两个堆,分别有N和M个硬币。一名玩家选择游戏中的任何一堆。然后的任务是将筹码分成两半,直到任何一个玩家都无法进一步将筹码分为两半。
让我们举个例子来了解这个问题,
Input: M = 2 , N = 2 Output:X
说明 -X启动游戏并选择M桩(两者相同),然后将桩分为两部分。现在每个将只包含一个硬币,因此Y将保持不变。这将使X获胜。
为了解决这个问题,我们需要看到玩家X获胜的机会。玩家X获胜的情况是任何一堆都将有偶数个硬币。否则,Y将是赢家。
程序展示了我们逻辑的执行
示例
#include <iostream>
using namespace std;
int isXWinner(int M, int N) {
if (M % 2 == 0 || N % 2 == 0)
return 1;
return 0;
}
int main() {
int M = 1, N = 2;
cout<<"Game Starts!\n";
if(isXWinner(M,N))
cout<<"Player X is the Winner";
else
cout<<"Player Y is the Winner";
return 0;
}输出结果
Game Starts! Player X is the Winner