202. 快乐数

一 题目:

二 思路:

  • 如果是快乐数肯定能变1,如果是变到之前的数,就可以终止了
  • 如果这个数变成了之前出现过的数,那么再往下计算也只是重复,肯定不是快乐数了

三 代码:

public static  boolean isHappy(int n) {
        //如果是快乐数肯定能变1,如果是变到之前的数,就可以终止了
        Set<Integer> dup=new HashSet<>();
        while (true){
            if (n==1){
                return true;
            }

            char[] charArray = String.valueOf(n).toCharArray();
            n=0;
            for (char c : charArray) {
                n=n+(c-'0')*(c-'0');
            }

            if (dup.contains(n)){
                return false;
            }else {
                dup.add(n);
            }
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容