用 C++ 玩尼姆遊戲
假設我們正在玩一個叫做尼姆遊戲的兩人遊戲。遊戲有一堆石子,每次一個玩家輪流拿走 1 到 3 塊石子。拿走最後一塊石子的玩家將獲勝。玩家1 將率先拿走石子。兩位玩家都很聰明,並對遊戲有最優策略。我們需要設計一種演算法來確定給定一堆石子數量的情況下玩家1 是否能夠贏得比賽。
因此,如果輸入為 5,則輸出將為 true,因為有 5 塊石子,所以一開始,如果玩家1 拿走一塊石子,那麼第二個玩家可以拿走 1 到 3 塊石子,玩家2 行動後至少會留有一塊石子,因此玩家1 可以獲勝。
可以使用一個簡單步驟來解決這個問題 -
當 n 除以 4 不等於 0 時返回 true,否則返回 false
示例
讓我們看看以下實現,以獲得更好的理解 -
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool canWinNim(int n) {
return n%4!=0;
}
};
main(){
Solution ob;
cout << (ob.canWinNim(5));
}輸入
5
輸出
1
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP