class Solution {
public boolean isHappy(int n) {
Set<Integer> set=new HashSet<Integer>();
int x=n;
while(true){
int sum=0;
//首先将数字拆分,求sum值
while(x!=0)
{
sum=sum+(int)Math.pow(x%10,2);
x=x/10;
}
//如果集合中没有sum,如果sum是1,就返回true
//如果不是就把sum值添加到set中,同时将x的值赋值为sum
//开始进行第二次求和
if(!set.contains(sum)){
if(sum==1)
return true;
set.add(sum);
x=sum;
}
//如果set中有这个值,就说明循环了,直接跳出,返回false
else
break;
}
return false;
}
}
网友评论