快乐数

115 阅读1分钟

202 快乐数

class Solution {
    public boolean isHappy(int n) {
        HashSet<Integer> set = new HashSet<Integer>();
        //如果set里面包含n,则会陷入死循环,不会等于1
        while(n != 1 && !set.contains(n)) {
            set.add(n);
            n = getNextNumber(n);
        }
        return n == 1;
    }

    //获取每个位置上的数字平方和,
    public int getNextNumber(int n) {
        int result = 0;
        while(n > 0) {
            int temp = n % 10;
            result += temp * temp;
            n = n /10;
        }
        return result;
    }
}