leetcode之Happy Number(202)

題目:

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

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

示例: 

輸入: 19
輸出: true
解釋: 
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

python代碼:

class Solution:
    def isHappy(self, n):
        nums_dict = {}
        while True:
            nums_dict[n] = True
            sum = 0
            while n > 0:
                sum += (n%10) ** 2
                n = n // 10
            if sum == 1:
                return True
            elif sum in nums_dict:
                return False
            else:
                n = sum

 

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