题目:
算法思想:
本题关键是退出循环的时机,应该是n=1或者出现相同的sum值,形成了环。
代码:
class Solution {
public boolean isHappy(int n) {
Set<Integer> set = new HashSet<Integer>();
while(n != 1 && !set.contains(n)) {
set.add(n);
n = sumHappy(n);
}
return n == 1;
}
public int sumHappy(int n) {
int sum = 0;
while (n > 0) {
int temp = n % 10;
sum = sum + temp * temp;
n = n / 10;
}
return sum;
}
}