因此,如果输入为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