美文网首页
202. 快乐数

202. 快乐数

作者: 名字是乱打的 | 来源:发表于2024-12-24 14:06 被阅读0次

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

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。
  • 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

一. 思路

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

二.代码

 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;
    }

相关文章

  • [Leetcode] 202. 快乐数

    202. 快乐数 来源: 202. 快乐数 1. 解题思路 设置集合查找是否已出现过 2. 代码

  • LeetCode学习计划:LeetCode 75-Level-2

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 问题描述...

  • 快乐数

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 题目编写...

  • 202. 快乐数

    内容 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位...

  • 202. 快乐数

    leetcode

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202. 快乐数

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202.快乐数 不快乐的时候做个快乐题!

    202.快乐数[https://leetcode-cn.com/problems/happy-number/sol...

网友评论

      本文标题:202. 快乐数

      本文链接:https://www.haomeiwen.com/subject/rvbmejtx.html