leetcode292:Nim游戏

思想:

题目要求你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。

你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。

每个人可以拿掉1-3块石头,当留给对手4个石头时,不管怎样我都能赢。所以我们只要给对手留下4的整数倍个石子,我们就能稳赢。比如现在有7个石子,我拿掉3个,留下4个(稳赢)。再者现在有9个石子,我拿掉1个,留下8个(稳赢)。即n若是4的倍数肯定输,若不是肯定赢。

class Solution:
    def canWinNim(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n%4==0:
            return False
        else:
            return True

这个游戏,很考验智力哦

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/83927567
今日推荐