这道题传统递归在leetcode上会超时,不过我觉得传统思路还是可以保留的。

数学方法

1
2
3
bool canWinNim(int n) {
return n%4;
}

传统递归

1
2
3
4
5
6
7
bool canWinNim(int n) {
if(n > 0 && n <= 3)
return true;
if(canWinNim(n-1)&&canWinNim(n-2)&&canWinNim(n-3))
return false;
else return true;
}