您和您的朋友,两个人一起玩 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 };