代码改变世界

Nim Game

2015-11-20 08:23  eliteGoblin's Blog  阅读(236)  评论(0)    收藏  举报

Nim Game Solution Report

题目大意:
2人玩数数, 从1 数到 n, 每次数1, 2或者3个数, 谁先数到n算赢. 给定 n, 你先数, 问你是否会赢
题目地址: Nim Game

解题思路:
以4为一个周期:

  • 若能被4整除, 则第二个人每次只需数完4的倍数,即可保证数到 n,第二个人肯定会赢.
  • 若不能被4整除则第一个人只要数完n被4除的余数, 问题等价于第二个人开始数, 数到4的倍数. 则第一个人肯定会赢

代码:

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