快乐数-判断一个数字是否是快乐数

快乐数

‘’’
快乐数(happy number)有以下的特性:
在给定的进位制下,该数字所有数位(digits)的平方和,
得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1。
那么就是快乐数,输出true
否则输出false
示例:输入28,输出true
28 → 22+82=68 → 62+82=100 → 12+02+0^2=1
‘’’

def judegHappNum(n):
    try:
        while (n!=1):
            if n<10:
                n = n ** 2
                udegHappNum(n)
            else:
                s = str(n)
                d = 0
                for i in s:
                    d = d + int(i)**2
                n = d
                judegHappNum(n)
        else :
            return True

    except Exception:
        return False

if __name__ == '__main__':
    print(judegHappNum(28))

如有好的实现方式请指教,欢迎交流


版权声明:本文为zhangxuelong461原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。