Skip to main content
 首页 » 编程设计

python之我为快乐号码检查器编写的代码无法正常工作,有人可以检查一下吗

2025年05月04日14傻小

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,但是我尝试过的任何其他数字都会让它无限循环。有人可以看看我做错了什么并提出解决方案吗?谢谢:)

供引用:http://en.wikipedia.org/wiki/Happy_number

请您参考如下方法:

试试这个:

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)