题目描述:
思路,代码中注释很清楚了
代码:
class Solution(object):
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
def get_sum(n):
sum=0
while n>0: # 从个位开始依次取,平方求和
sum+=(n%10)**2
n/=10
return sum
record=set() # 记录中间结果
while True:
n=get_sum(n)
if n==1:
return True
if n in record: # 如果中间结果重复出现,说明陷入死循环了,该数不是快乐数
return False
else:
record.add(n)