可以用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