此題本人已經AC,但是發現了一個無從證明的判斷條件
無論 S0 為多少,只要過程中出現 4 就必定是Unhappy number
因為 4 會產生 4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4 的循環
所以我就以過程中是否有 4 作判斷條件,結果AC。
但是我無法證明為什麼沒有出現 4 或 4 循環中的其他數字就是Happy number
是測資範圍的輸入值都剛好符合條件,還是這其實可以證明
想請各位幫忙解惑,謝謝
這件事可以用簡單的、較不嚴謹的歸納法所證明,如下:
已知,對於任意大於等於 100 的十進位正整數 N ,將 N 的各位數平方再相加(以下稱此過程為 Z 迭代)之後得到的值 N' 必定小於原來的 N 。
因此,所有不小於 100 的正整數 N 經過有限次 Z 的迭代後,最後的值必會落在 1 (含)~ 99 (含)之間。
接著,我們窮舉所有介於 1 ~ 99 之間的數字去進行若干次的 Z 迭代。發現了一組且唯一一組的完整循環節,也就是 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 。其他數字要不是落入這個循環,就是到達 1 (即為快樂數)。
而正因為所有大於等於 100 的正整數經過幾次的 Z 迭代後都會落到 1 ~ 99 的區間中。於是便證明了所有的不快樂數最終必定落於
4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4
的循環節之中。
以上。希望這個證明不會太含糊XD