用 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
廣告