编写一个算法来判断一个数是不是“快乐数”。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time: 2018/8/9
# @Author: xfLi
# The file...
#分解整数各个位的算法
def resolve(num):
res = 0
while num != 0:
temp = num % 10
res += pow(temp, 2)
num = (num - temp) / 10
return res
def isHappy(n):
"""
:type n: int
:rtype: bool
"""
record = set()
while True:
record.add(n)
n = resolve(n)
if n == 1:
return True
elif n in record:
return False
if __name__ == '__main__':
n = 18
result = isHappy(n)
print(result)