将n弄成二进制的形式,显然如果这个数字只有一位是1那么必胜。
如果这个数字有两位是1,那么想办法保持住两位,就可以赢。
如果这个数字有三位是1,那么变成两位是1,就可以赢。
讨论为:
n有一位为1:直接取那一位,必胜
n为11:必输
n有两位为1,除了11这种情况外:
1000...1:这种情况,取任意一个1就失败,只能取10中间0的位置,从而一直下降,对方也是这样,所以这种情况下,胜负决定于中间0的个数,如果有偶数个0,则必胜,如果有奇数个,则必输。所以11为这种情况的特例。
1000...100...:这种情况是一样的,总能通过取1后面0的位置将两个部分的0“合并”,从而结论同上。
11000...:同上讨论,只能取第三位的0,这样转化为上面的情况,从而结论同上。
总结:当只有两个1的时候,胜败决定于数字中0的个数,如果有奇数个0,那么失败,反之则胜利。
剩下的我自己都讨论糊涂了,不讨论了,睡会儿觉再说……
上面的是刚刚写的……