1. 程式人生 > >Python實現"快樂的數"的一種方法

Python實現"快樂的數"的一種方法

寫一個演算法判斷一個數字是不是快樂數

快樂數由下面的過程定義:任何正數,用它數字的平方和替換它,重複這個過程直至結果為1,或者以一個環無線迴圈,環中的正數不包括1。這個過程以1結束就可以認為是快樂的數

Example: 

Input: 19
Output: true
Explanation: 
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

1:快樂的數計算結果一定為1,不是快樂的數計算結果中一定存在環

def isHappy(self, n):
        """
        :type n: int
        :rtype: bool
        """
        numList = [n]    #存放所有計算出來的數,用於判斷是否存在環
        while n!=1:     #如該計算結果為1,說明該數是快樂的數
            sum=0
            for i in str(n):
                sum += int(i)**2
            if sum not in numList:     #判斷是否存在環
                numList.append(sum)
            else:       #存在環就說明該數不是快樂的數
                return False
            n = sum
        return True