你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。
这是一道博弈论的问题,但是在一直条件的限定下,你会发现,当石头数量是4的倍数时,你就会输。所以
python:
class Solution(object):
def canWinNim(self, n):
"""
:type n: int
:rtype: bool
"""
return (n % 4) != 0
C++:
class Solution {
public:
bool canWinNim(int n) {
return (n%4 != 0);
}
};