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.
这道题是easy。。。然而并不懂哪里简单。。。
ok,首先是题目。。。就是你拿完我拿,我拿完你拿,ok。只能是1,2,3,惊奇的发现1+3=2+2=3+1=4,所以,由于我先拿,如果能被四整除的话,我就不能赢了,反之我能赢,ok。
class Solution {
public:
bool canWinNim(int n) {
return n % 4 != 0;
}
};
嘤嘤嘤。。。宝宝心里苦。。。