可以用C++的游戏,允许去除一颗石头


在这个名为游戏中的零和游戏的问题中,我们得到了一个表示石头堆的正整数N,并且有两位玩家‘playerA’‘playerB’。我们的任务是创建一个程序来预测零和游戏中的赢家。

零和游戏 - 我们有一堆石头和两位玩家‘playerA’‘playerB’。如果‘playerA’开始从堆中拿走一块石头,那么每位玩家都可以从堆中拿走一块石头。我们需要预测游戏的赢家。从堆中拿走最后一块石头的玩家是游戏的赢家。

让我们举一个例子来理解这个问题

Input: N = 6
Output: playerB
Explanation :
Total stones = 6, players picking stones as
playerA - playerB - playerA - playerB - playerA - playerB

解决方法

一种解决问题的方法是针对N的值和游戏的赢家找到一般公式。让我们看看N的几个值,以及每种情况下的赢家,

N = 1,赢家 = playerA

N = 2,赢家 = playerB

N = 3,赢家 = playerA

由此,我们可以得出结论:如果N为奇数,playerA是赢家。如果N为偶数,playerB是赢家。

示例

演示我们解决方案工作原理的程序

#include<iostream>
using namespace std;

bool findGameofNimWinner(int N){
   if(N%2 == 0)
      return 0;
   else
      return 1;
}
int main(){

   int N = 26;
   cout<<"The winner of the Game of Nim is ";
   findGameofNimWinner(N) ? (cout << "Player A") : (cout << "Player B");
   return 0;
}

输出

The winner of the Game of Nim is Player B

更新于: 2022 年 2 月 1 日

176 浏览

开启你的 职业 生涯

通过完成课程获取认证

开始
推广