用 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

更新于:2020年2月4日

269 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告