202. Happy Number

Easy

看了discussion借鉴了一个用set来判断结束游戏的方法,如果set.add(a) return false的话,说明set里面已经有a了,此时继续游戏会无限循环根据题意可以判断不是happy number。同时,也注意一下如果写把一个整数每个位置上的数字都加起来的操作。基本上就是

while (n > 0){
   digit = n%10;
   sum += digit;
   n /= 10;
}

完整代码:

class Solution {
    public boolean isHappy(int n){
        Set<Integer> set = new HashSet<>();
        int sum = 0;
        int digit = 0;
        while (set.add(n)){
            sum = 0;
            while (n > 0){
                digit = n % 10;
                sum += digit*digit;
                n /= 10;
            }
            if (sum == 1){
                return true;
            }
            n = sum;
        }
        return false;
    }
}

    原文作者:greatfulltime
    原文地址: https://www.jianshu.com/p/9bdb08a3a3a8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞