https://leetcode-cn.com/problems/nim-game/
- 推理
讓我們考慮一些小例子。顯而易見的是,如果石頭堆中只有一塊、兩塊、或是三塊石頭,那么在你的回合,你就可以把全部石子拿走,從而在游戲中取勝。而如果就像題目描述那樣,堆中恰好有四塊石頭,你就會失敗。因為在這種情況下不管你取走多少石頭,總會為你的對手留下幾塊,使得他可以在游戲中打敗你。因此,要想獲勝,在你的回合中,必須避免石頭堆中的石子數(shù)為 4 的情況。
同樣地,如果有五塊、六塊、或是七塊石頭,你可以控制自己拿取的石頭數(shù),總是恰好給你的對手留下四塊石頭,使他輸?shù)暨@場比賽。但是如果石頭堆里有八塊石頭,你就不可避免地會輸?shù)?,因為不管你從一堆石頭中挑出一塊、兩塊還是三塊,你的對手都可以選擇三塊、兩塊或一塊,以確保在再一次輪到你的時候,你會面對四塊石頭。
顯然,它以相同的模式不斷重復 n=4,8,12,16,\dotsn=4,8,12,16,…,基本可以看出是 44 的倍數(shù)。
public boolean canWinNim(int n) {
return (n % 4 != 0);
}