Leetcode快樂刷題 快樂的數

2021-10-08 19:24:53 字數 914 閱讀 8241

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

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

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

示例:

輸入:19

輸出:true

解釋:

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

方法一:暴力**

class solution 

if(res==1)

tmp=res;

}return false;}}

;

方法二:快慢指標法,實驗了一下,被速度震驚了

原理:根據題目就可以看出,如果是不快樂的數,那麼就會陷入幾個數的死迴圈

這時候,快的指標一定會在死迴圈的某一刻追上慢的指標。而如果是快樂的數,那麼結果一定是快的指標先到1去等慢的指標。又1的平方是它自己,所以一定能等到

class solution 

while

(fast!=slow);if

(fast==1)

return true;

return false;

} private:

intsquarenum

(int m)

return tmp;}}

;

LeetCode演算法題 快樂數isHappy

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

LeetCode之快樂數

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

LeetCode 快樂數 中級演算法

題目 編寫乙個演算法來判斷乙個數是不是 快樂數 乙個 快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為 1,那麼這個數就是快樂數。示例 輸入 19 輸出 true 解釋 1 1 9 9 8...