C ++中的Nim游戏

因此,如果输入为5,则输出为true,因为有5块石头,因此一开始,如果玩家1拿了一块石头,那么第二位玩家可以拿1到3块石头,则至少会有一个玩家2旋转后剩下的石头,因此玩家1可以获胜。

这可以使用一个简单的步骤来解决-

  • 当n mod 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