快乐数
👉👉本文共267字📘
读完共需1分钟⌚
快乐就完事了。
¶快乐数是什么
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 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
¶编写一个算法来判断一个数是不是“快乐数”。
思路,不断的求输入数字每个位置平方和,然后看是否等于1,等于1就是快乐数,问题是,什么时候判断false。
答案就是出现无线循环的时候,也就是出现重复的数字,必定会进行下一次循环。
class Solution:
def isHappy(self, n: int) -> bool:
already = set()
while n != 1:
nums = 0
while n > 0:
temp = n % 10
nums = nums + temp * temp
n = n // 10
if nums in already:
return False
else:
already.add(nums)
n = nums
return True