【力扣日記】202 快樂數 | 數學問題

題目描述

編寫一個算法來判斷一個數是不是“快樂數”。

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

————

不是快樂數的數稱爲不快樂數(unhappy number),所有不快樂數的數位平方和計算,最後都會進入 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的循環中。

算法

class Solution:
    def isHappy(self, n: int) -> bool:
        def f(n):
            ls=list(map(int,str(n)))
            rec=0
            for i in ls:
                rec+=i*i
            return rec
        while True:
            n=f(n)
            if n in[4,16,37,58,89,145,42,20,4]:return False
            if n==1:return True

執行用時 :36 ms, 在所有 Python3 提交中擊敗了78.74%的用戶
內存消耗 :13.5 MB, 在所有 Python3 提交中擊敗了31.11%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章