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)
关于python - 我为快乐号码检查器编写的代码无法正常工作,有人可以检查一下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447837/