class Solution: def isHappy(self, n: int) -> bool: def calculate_happy(num): sum_ = 0 # 从个位开始依次取,平方求和 while num: sum_ += (num % 10) ** 2 num = num // 10 return sum_ # 记录中间结果 record = set() while True: n = calculate_happy(n) if n == 1: return True # 如果中间结果重复出现,说明陷入死循环了,该数不是快乐数 if n in record: return False else: record.add(n)
时间: 2023-06-03 17:06:53 浏览: 102
这是一个 Python 的类 Solution,其中定义了一个方法 isHappy,输入参数是一个整数 n,输出一个布尔值表示 n 是否是一个快乐数(Happy Number)。
方法内部有一个内嵌函数 calculate_happy,用来计算一个数字的各个数位的平方和,并且可以递归调用自己,直到计算出来的数字为 1 或者已经出现过,则返回一个布尔值表示是否是快乐数。
阅读全文