小明和小方玩游戏。桌子上有10枚硬币。他们轮流拿1或2个硬币。谁拿到最后一个谁就赢了。
一楼的答案应该有问题吧?这类问题可以拿1或者2。如果要取最后一个,必须是3的倍数。让对方先选。如果对方选择1,你选择2,对方选择1。所以让对手在3,6,9选择。如果不是3的倍数,比如这个问题有10块,你就先选,10/3的余数就是1块。
这类问题的一般解法,比如有m个硬币,两个人轮流拿1和N之间的任意一个,谁拿到最后一个谁就赢。
那么如果m是(1+N)的倍数,后一手就赢,如果不是(1+N)的倍数,前一手就赢。