[LeetCode] 292. Nim Game

<span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);">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.</span>

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.

解题思路:要让自己赢,只要再最后一轮剩4个,所有第一次拿的话,拿掉4的余数,剩下的每轮,无论对手拿掉几个,我都保证一共拿掉4个。但是,如果给的数目是4的倍数的话,就不能保证自己赢。

class Solution {
public:
    bool canWinNim(int n) {
        return !(n % 4 == 0);
    }
};




猜你喜欢

转载自blog.csdn.net/chenyingying_/article/details/52279463
今日推荐