python暴力算法快乐数

编写一个算法来判断一个数是不是“快乐数”。

一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。

示例:

输入: 19

输出: true

解释:

1^2 + 9^2 = 82

8^2 + 2^2 = 68

6^2 + 8^2 = 100

1^2 + 0^2 + 0^2 = 1

因为如果输入2或4往上的倍数时会进入无限死循环,所以我加了一个count,在循环50次还没有结果时直接break

class Solution:

def isHappy(self, n: int) -> bool:

n_str = str(n)

count = 0

while True:

count += 1

s = 0

for i in n_str:

s =s + int(i)**2

if s != 1:

n_str = s

n_str = str(n_str)

elif s == 1:

return True

break

if count == 50:

break