leetcode 202.Happy Number (python3 )
阿新 • • 發佈:2019-01-08
題目:
題目分析:首先,本題需要判定輸入的整數其各位數平方求和最終值是否為1 ?輸入整數位整型,返回值為布林型。
程式設計思路:
1.需要利用到迴圈實現每一次求和後判定是否為1 。
2.需要排除有可能出現死迴圈的狀況,經過幾次平方求和後,結果為某一個出現過的值
class Solution: def isHappy(self, n): """ :type n: int :rtype: bool """ mem = set() #利用 set()集合,儲存平方求和後的數值 while n != 1: #利用 while 實現迴圈 n = sum([int(i)**2 for i in str(n)]) #通過str(n)調取輸入整數各個位數的值 if n not in mem: #若平方求和後的數值是首次出現,則新增進集合中 mem.add(n) else: #若求和後數值,在集合中存在,則直接返回false,即出現死迴圈 return False return True #最終當n==1時,跳出while迴圈,返回true