HashTable-----202. Happy Number

来源:互联网 发布:教务系统数据库设计 编辑:程序博客网 时间:2024/06/14 13:48

原题目

读懂题意,除了分拆还有一个比较重要的点就是要知道什么时候能够退出false.也就是说在某种情况下会形成一个不满足true条件的循环,那么就说明是失败了,临界条件是什么?就是出现了已经出现过的数

public boolean isHappy(int n) {    if(n==1){        return true;    }    HashSet<Integer> set=new HashSet<>();    while(n!=1&&!set.contain(n)){        set.add(n);        int num=0;        while(n!=0){            int a=n%10;            int b=a*a;            num+=b;            n=n/10;        }        n=num;        if(n==1){            return true;        }    }    return false;}