通过set的不可重复特性,向set中添加元素,如果出现重复元素,那么就是进入了循环
代码如下
class Solution {
public static int getadd(int n){
int sum=0;
while(n!=0){
sum+=(int)(Math.pow(n%10,2));
n/=10;
}
return sum;
}
public static boolean isHappy(int n){
Set<Integer> set=new HashSet<>();
//重复时跳出循环
while(n!=1&&!set.contains(n)){
set.add(n);
n=getadd(n);
}
return n == 1;
}
}