题解 | Nim游戏

Nim游戏

https://www.nowcoder.com/practice/bb574ea90ed2495680fef88d59238231

1.解题思路

当n为1、2、3时,只要先手取光石头,即可获胜,所以先手必胜。当n为4时,不管先手取1个、2个还是3个石头,剩下的石头都可以被后手取完,所以先手必败。当n为5、6、7时,只要取对应的石头,剩下的石头都可以变成4,从而后手必败,即先手必胜。同样,当n取8时,无论先手怎么取,留给后手的一定是5个、6个或7个石头,所以后手必胜,先手必败。依此类推先手取4,8,12,16,……时,一定会输给后手。

图解展示: 

2.代码实现

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return bool布尔型
#
class Solution:
    def NimGame(self , n: int) -> bool:
        # write code here
        return n%4

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务