🌗 202. 快乐数
2022年10月10日
- algorithm
🌗 202. 快乐数
难度: 🌗
问题描述
解法
class Solution {
public boolean isHappy(int n) {
// 思路:
// HashSet 判断之前该数是否计算过,若出现过,说明已经出现循环,永远也到不了 1
HashSet<Integer> set = new HashSet<>();
if(n == 1) {
return true;
}
while(n != 1) {
if(set.contains(n)) {
return false;
}
set.add(n);
n = mySol(n);
}
return true;
}
private int mySol(int n) {
// 计算 n 的所有位 的平方和
int res = 0;
while(n != 0) {
int left = n % 10;
n /= 10;
res += left * left;
}
return res;
}
}