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