快樂數字 的計算

2021-10-05 15:27:34 字數 748 閱讀 6499

編寫乙個演算法來判斷乙個數 n 是不是快樂數。

「快樂數」定義為:對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果 可以變為 1,那麼這個數就是快樂數。

如果 n 是快樂數就返回 true ;不是,則返回 false 。

示例:輸入:19

輸出:true

解釋:12+92

=8282+

22=6862+82

=10012+

02+02=

1

首先明確一點,最大的三位數是 999,每個數字的平方和,即 92+92+92 = 243,從999變成243是變小了,四位數,五位數等等一樣,會越來越小。

怎樣求各數字的平方和,我沒想到簡單的方法,將int轉成stirng,stirng的長度,就是int的位數,再分別取出各位的數字,算平方和。官方的實現,很優雅。

// **很容易理解,不過多解釋

private

intgetsum

(int n)

return sum;

}

是否無限迴圈,可以用快慢指標,也可以用數學的方法,即運算過程中,出現了重複的數字,一定會產生迴圈。

(int n)

return n ==1;

}好了,題目很簡單,官方給的**很優雅,自己沒想到,在這裡記錄下。

python 快樂的數字

編寫乙個演算法來確定乙個數字是否 快樂 快樂的數字按照如下方式確定 從乙個正整數開始,用其每位數的平方之和取代該數,並重複這個過程,直到最後數字要麼收斂等於1且一直等於1,要麼將無休止地迴圈下去且最終不會收斂等於1。能夠最終收斂等於1的數就是快樂的數字。例如 19 就是乙個快樂的數字,計算過程如下 ...

202 快樂數(分離數字的位數)

編寫乙個演算法來判斷乙個數 n 是不是快樂數。快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和。然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果這個過程 結果為 1,那麼這個數就是快樂數。如果 n 是 快樂數 就返回 true 不是,則返回 ...

Python練習題 快樂數字

題目描述 編寫乙個演算法來確定乙個數字是否 快樂 快樂的數字按照如下方式確定 從乙個正整數開始,用其每位數的平方之和取代該數,並重複這個過程,直到最後數字要麼收斂等於1且一直等於1,要麼將無休止地迴圈下去且最終不會收斂等於1。能夠最終收斂等於1的數就是快樂的數字。例如 19是乙個快樂數字,計算過程如...