a = int(raw_input("Enter a number to check if it is happy:"))
l = map(int, str(a))
c = 0
while 1:
for i in l:
b = i
c = c + b **2
if c == 1:
print "Happy Number!"
raw_input("Hit enter to end")
break
elif c == a:
print ("Not a Happy number")
raw_input("Hit enter to end")
break
else:
l = map(int, str(c))
这是我用 Python 编写的代码,它适用于数字 1 和 0,但是我尝试过的任何其他数字都会让它无限循环。有人可以看看我做错了什么并提出解决方案吗?谢谢:)
请您参考如下方法:
试试这个:
a = int(raw_input("Enter a number to check if it is happy: "))
visited = set()
while 1:
if a == 1:
print "Number is happy!"
break
a = sum(int(c) ** 2 for c in str(a))
if a in visited:
print "Number is sad!"
break
visited.add(a)
