脑筋急转弯题。
先从石头数量较少考虑,假设当前是我的回合,如果还剩石头数量为1,2,3,我能够获胜。如果石头数量为4,我必定会输。
现在考虑石头更多的情况:还是我的回合,如果石头数量是5,6,7,我可以将4堆石头留给对手,我必胜。如果石头数量是8,对手一定会将4留给我,我必败。
石头数量更多的情况也是如此,归纳一下,如果石头数量是4的倍数,我就不能获胜。
class Solution {public: bool canWinNim(int n) { return (!(n%4==0)); }};