可以用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
推广
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP