Menu
CoddyTech

Happy Number

从一个正整数 n 开始,反复将它替换为各位数字的平方和。例如,12 会变成 1² + 2² = 5。如果这个过程到达 1,n 就是快乐数;否则,它会永远在不包含 1 的数字之间循环。如果 n 是快乐数,返回 true;否则返回 false。

函数

isHappy(n: integer) → boolean
ninteger
要测试的正整数
返回值boolean
如果重复计算各位数字的平方和最终得到 1,则为 true;如果陷入无限循环,则为 false

约束条件

  • 1 ≤ n ≤ 231-1

示例

输入
n = 7
输出
true
解释
7 变成 49,然后 4² + 9² = 97,然后是 130,再然后是 10,最后是 1。这个过程到达 1,所以 7 是快乐数。
challenge icon

进阶

怎样快速统计从 1 到 10^6 的快乐数,并重复利用小于 1000 的数的答案,而不是每次都从头遍历?

重置代码
def isHappy(n):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

n = 7

预期输出

true