Question
Solution
思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。
n 是否能赢
1 true
2 true
3 true
4 false 不论删除几,对方都能一把赢
5 true 删除1,还剩4,对方先手,对方输
6 true 删除2,还剩4,对方先手,对方输
7 true 删除3,还剩4,对方先手,对方输
8 false 不论删除几,都能被对方造成还剩4,已方先手,我们就输
9 true
10 true
Java实现:
public boolean canWinNim(int n) {
return n%4 != 0;
}
来源:oschina
链接:https://my.oschina.net/u/159293/blog/1835347