292. Nim游戏


 

您和您的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 到 3 块石头。 拿掉最后一块石头的人就是胜利者。由您来开局。

你们两个都是聪明人,相信都有最佳的游戏策略。 请编写一个函数,来判断您是否可以在给定的石头数量的情况下赢得游戏。

比方说,如果堆中有4块石头,那么你永远不会赢得比赛:无论你拿走的是 1块,2块 还是 3块 石头,最后一块石头总是会被你的朋友拿走。

 

题解:找规律 F:先手赢  S:后手赢

 1 F
 2 F
 3 F
 4 S
 5 F
 6 F
 7 F
 8 S
 9 F
10 F
11 F
12 S

规律就出来了~


1
class Solution { 2 public: 3 bool canWinNim(int n) { 4 if(n % 4 == 0) return false; 5 else return true; 6 } 7 };

 

posted @ 2018-05-13 21:28  听说这是最长的名字了  阅读(835)  评论(0编辑  收藏  举报