题目地址
https://leetcode.com/problems/nim-game/
题目大意
和好朋友玩游戏,桌子上与很多棋子,每个人轮流拿棋子,可以拿1个、2个或3个,拿走最后一个棋子的人获胜。假设你和你的好朋友都很聪明,永远使用最优解,当给定桌子上棋子的数量,输出你先拿棋子的情况下,是否能够获胜。
解题思路
这是一个数学题,当剩下的棋子数量为4的倍数时,下一要拿的人就会输。需要注意,当不使用提示编译器进入if
语句可能性的语句时候,将大概率可能的情况作为if
为true
的情况。
代码
class Solution {
public:
bool canWinNim(int n) {
if (n % 4 != 0) {
return true;
}
return false;
}
};