“”" 编写一个算法来判断一个数 n 是不是快乐数。 快乐数定义为:对一个正整数,每一次将该数替换成它每个位置上的数字的平方和,然后重复这个过程 到这个数变为1,也可能是无限循环 但始终变不到1. 如果可以变为1,那么这个数就是快乐数。 如果n是快乐数就返回True:不是,则返回False.
输入:19 输出:true 解释: 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1
“”" “”" 20
2^2 + 0^2 = 4 4^2 =16 1^2 + 6^2=37 3^2 + 7^2 =58 5^2 + 8^2 = 89 8^2 + 9^2 = 145 1^2 + 4^2 + 5^2 = 42 4^2 + 2^2 = 20 “”"
vis
= set()
def hpnum(num
):
if num
in vis
:
return False
val
= sum(int(s
)**2 for s
in str(num
))
if val
== 1:
return True
vis
.add
(num
)
return hpnum
(val
)
print(hpnum
(19))
执行结果:
True