041 · Happy Number
algorithm
Problem
给定一个正整数 n。
请判断:n 是否是一个快乐数。
快乐数的定义是:
- 从
n开始 - 把这个数替换成它每一位数字的平方和
- 不断重复这个过程
如果这个过程最终变成 1,那么 n 就是快乐数。
如果这个过程一直重复,但永远不会变成 1,那么 n 就不是快乐数。
例如:
n = 19
计算过程是:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
最终变成了 1,所以答案是:
true
再比如:
n = 2
这个过程不会变成 1,所以答案是:
false
Examples
示例 1
Input: n = 19
Output: true
解释:19 经过若干次“各位数字平方和”的转换后,会变成 1。
示例 2
Input: n = 2
Output: false
解释:从 2 开始重复转换,最终不会得到 1。
示例 3
Input: n = 1
Output: true
解释:1 本身已经是 1,所以它是快乐数。
Constraints
- \(1 \leq\)
n\(\leq 2^{31} - 1\)
Link
→ Solution