题目:
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.
Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.
For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.
解答:
此题是类似于数学智力题目,可以通过用几个数来找规律
n = 1 获胜
n = 2 获胜
n = 3 获胜
n = 4不管取几,在双方都很聪明的情况下,永远是另一边获胜
n = 5可以先取1,然后不管对方取几,都一定获胜
n = 6可以先取2,然后不管对方取几,都一定获胜
n = 7可以先取3,然后不管对方取几,都一定获胜
n = 8 不管取几,对方先取4 - 取的数字,然后对方就一定获胜
所以可以发现,n为4的倍数时无法获胜,其他情况下都可以获胜
代码也就是简单的一行 return !(n % 4 == 0);