1. 程式人生 > >算法38---292. Nim遊戲

算法38---292. Nim遊戲

quest col 一個 tar item 都是 als 編寫 bool

1、題目:

你和你的朋友,兩個人一起玩 Nim遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作為先手。

你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。

示例:

輸入: 4
輸出: false 
解釋: 如果堆中有 4 塊石頭,那麽你永遠不會贏得比賽;
     因為無論你拿走 1 塊、2 塊 還是 3 塊石頭,最後一塊石頭總是會被你的朋友拿走。

2、思路:

先拿的那位只要每兩次都保證和為4,則必贏,所以只要總數 n != 4,甲就能贏。

3、代碼:

    def canWinNim(self, n):
        
""" :type n: int :rtype: bool """ if not n: return False return n%4 != 0


算法38---292. Nim遊戲