快乐数

题目地址:快乐数

题目中,提到了 无限循环 ,而每一次需要判断sum是否重复,我们在判断是否有重复元素时,可以使用 Set 集合。

使用Set 集合,对每一次求得sum进行判断,直到sum==1为止。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public boolean isHappy(int n) {
Set<Integer> set = new HashSet<>();

while( n!= 1 && !set.contains(n)){
set.add(n);
n = getSum(n);
}
return n == 1;
}
//求一个数各个位置平方和
public int getSum(int n ){
int sum = 0;
while(n>0){
sum += (n%10)*(n%10);
n/=10;
}

return sum;
}
}