1. 程式人生 > >leetcode292:Nim遊戲

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

這個遊戲,很考驗智力哦