编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
number = int(input("请输入一个数:"))
sum = 0
setname = {0}
none = True
while none:
num = number%10
sum = num*num+sum
number = int(number/10)
if number == 0:
if sum == 1:
none = False
else:
if sum in setname:
none =False
else:
setname.add(sum)
number = sum
sum = 0
if sum == 1:
print("True")
else:
print("False")
结果为: