快乐数|快乐数 (lintcode:happy-number)

写一个算法来判断一个数是不是"快乐数"。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例:19 就是一个快乐数:19->82->68->100->1


思路:
对于非快乐数,如61,会有如下的循环过程:61->37->58->89->145->42->20->4->16->37
非快乐数最后会进入序列 4->16->37->58->89->145->42->20 的死循环


代码:

def isHappy(n): result = 0 while result != 1 and result != 4: result = 0 n = str(n) for i in n: result = int(i)**2 + result n = result if result == 1: return True return Falsen = 61 print isHappy(n)



【快乐数|快乐数 (lintcode:happy-number)】lintcode 原题
思路的 出处
20180220

    推荐阅读