你正在和朋友玩下面的Nim游戏:桌子上有一堆石头,每一次你们轮流取1至3颗石头。最后一个取走石头的人就是赢家。第一轮由你先取。你们俩都很聪明并且掌握玩游戏的最佳策略。编写函数,给定石头的个数,判断你是否可以赢得游戏。
例如,如果堆中有4颗石头,那么你一定不会赢得游戏:无论你第一轮取走1,2,还是3颗石头,下一轮你的朋友都可以取走余下的所有石头。
解题思路:
Nim游戏的解题关键是寻找“必胜态”。
根据题设条件:
......
以此类推,可以得出结论:
class Solution {
public:
bool canWinNim(int n) {
return n % 4 !=0;
}
};