当前位置: 首页 > news >正文

003_快乐数

链接:202. 快乐数 - 力扣(LeetCode)

202.快乐数

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

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

如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

示例 1:

输入:n = 19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

示例 2:

输入:n = 2
输出:false

提示:

  • 1 <= n <= 231 - 1

题解:

算法原理:快慢指针;相遇点等于1,就是快乐数;不等于1,就不是快乐数。

代码:

class Solution {
public:
    int sum(int n)
    {
        int tmp = n;
        int sum = 0;
        while(tmp)
        {
            sum += pow(tmp % 10, 2);
            tmp /= 10;
        }
        return sum;
    }

    bool isHappy(int n) {
        int slow = n, fast = sum(n); // 快慢双指针
        while(slow != fast)
        {
            slow = sum(slow);   // 慢指针走一步
            fast = sum(sum(fast));  // 快指针走两步
        }

        return slow == 1;
    }
};

相关文章:

  • Axios介绍(前端开发处理网络请求首选工具,基于Promise HTTP客户端,可以在浏览器和Node.js环境使用)(Axios库)
  • Java 综合实战项目:生成不重复随机字符串数组
  • 深度学习 Deep Learning 第2章 线性代数
  • 2024年12月CCF-GESP编程能力等级认证C++编程五级真题解析
  • 理解进程间通信
  • ANSYS Swan 条件激活与重置操作符教程
  • 目标在哪里?——寻找人生的意义与方向
  • 【虚幻C++笔记】引擎源码下载及编译步骤
  • Kubernetes之ETCD
  • 即插即用模块--KANLinear
  • c++的static和java的有何不同和联系
  • pywinauto自动安装python和java
  • 小程序配置
  • 企业数据管理的成本与效率革命
  • 社区版Uos20.9从源码编译QT5.15.2
  • 阿里云企业邮箱出现故障怎么处理?
  • 算法日记40:最长上升子序列LIS(单调栈优化)n*log^n
  • 如何通过Odoo 18采购模块优化管理供应商价格表
  • [CISCN 2022 初赛]ezpop(没成功复现)
  • Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?
  • 对话作家吉井忍:“滚石”般的生活,让我看到多种人生可能
  • 梅花奖在上海|秦海璐:演了15年《四世同堂》,想演一辈子
  • 浙江演艺集团7部作品组团来沪,今夏开启首届上海演出季
  • 央视起底“字画竞拍”网络传销案:涉案44亿元,受害者众多
  • 当番茄霸总遇上晋江古言,短剧IP小变局
  • 因存在安全隐患,福特公司召回约27.4万辆SUV