202. Happy Number

来源:互联网 发布:y系列电动机绕组数据 编辑:程序博客网 时间:2024/04/20 07:31

主要是用一个set验证所得数会不会循环  每出现一个新数 放入set 如果出现过就说明有循环 退出

public class Solution {
    public boolean isHappy(int n) {
        if(n<=0) return false;
        long ln = n;
        Set<Long> set = new HashSet<Long>();
        
        while(ln!=0) {
            if(set.contains(ln) ) return false; else set.add(ln);
            ln = digitSquare(ln);
            if(ln == 1) return true;
        }
        return false;
    }
    
    private long digitSquare(long ln) {
        long sum = 0;
        while(ln!=0) {
            sum += Math.pow(ln%10, 2);
            ln /= 10;
        }
        return sum;
    }
}

0 0
原创粉丝点击