202. 快乐数

2024-12-24  本文已影响0人  名字是乱打的

编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为:

一. 思路

其实这里我们知道怎么判断这个数是不是快乐数,但是在判断什么数不是快乐数会陷入迷茫。
思路:所有非快乐数都会陷入某种循环,回到之前的某个数中

二.代码

 public static boolean isHappy(int n) {
        Set<Integer> allNum=new HashSet<>();
        //如果变成之前的数,说明陷入循环了,肯定不是快乐数
        while (n!=1){
            String sn = String.valueOf(n);
            int sum=0;
            for (int i = 0; i < sn.length(); i++) {
                int curNum=sn.charAt(i)-'0';
                sum+=curNum*curNum;
            }
            if (sum==1){
                return true;
            }
            //如果之前的加和结果已经出现过了,说明陷入了循环之中了
            if (allNum.contains(sum)){
                return false;
            }else {
                //记录出现过的加和结果
                allNum.add(sum);
            }
            n=sum;
        }

        return true;
    }
上一篇 下一篇

猜你喜欢

热点阅读