202.(查找问题set)Happer Number

class Solution {
    public boolean isHappy(int n) {
        Set set=new HashSet();
        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;
      
        
    }
}

你可能感兴趣的:(202.(查找问题set)Happer Number)