用 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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.