尼姆游戏(吃花生米问题)

尼姆游戏。有总数为n的石头,每个人可以拿1~3个石头,两个人交替拿,拿到最后一个的人获胜。究竟是先手有利,还是后手有利? 

  1. 1个石子,先手全部拿走;
  2. 2个石子,先手全部拿走;
  3. 3个石子,先手全部拿走;
  4. 4个石子,后手面对的是先手的第1,2,3情况,后手必胜;
  5. 5个石子,先手拿走1个让后手面对第4种情况,后手必败;
  6. 6个石子,先手拿走2个让后手面对第4种情况,后手必败;
  7. ……


  容易看出来,只有当出现了4的倍数,先手无可奈何,其余情况先手都可以获胜。

  

1 class Solution {
2 public:
3     bool canWinNim(int n) {
4         if(n % 4 == 0)  return false;
5         else    return true;
6     }
7 };
原文地址:https://www.cnblogs.com/pilihaotian/p/4974734.html