LeetCode 面试经典150题 202.快乐数

ops/2024/10/21 6:39:06/

题目

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

「快乐数」 定义为:

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

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

思路

代码

class Solution {private int getNext(int n) {int totalSum = 0;while (n > 0) {int d = n % 10;   // 个位n = n / 10;       // 把个位去掉,依次重复totalSum += d * d;}return totalSum;}public boolean isHappy(int n) {if (n <= 0)return false;int slow = n;int fast = getNext(n);// 与单纯判断是否存在环不同,后者 初始slow=fast=headwhile (fast != 1 && slow != fast) { // 找到1 或者 存在环 终止循环slow = getNext(slow);fast = getNext(getNext(fast));}return fast == 1;}
}


http://www.ppmy.cn/ops/5607.html

相关文章

layui框架实战案例(27):弹出二次验证

HTML容器 <button class"layui-btn layui-btn-sm layui-btn-danger" lay-event"delete"><i class"layui-icon layui-icon-delete"></i>批量删除</button>删除封装函数 function delAll(school_id, school_name) {var lo…

通过实例学C#之序列化与反序列化XmlSerializer类

简介 可以将类序列化成xml文件&#xff0c;或者将xml文件反序列化成类对象&#xff0c;一般用于保存或加载项目参数。 构造函数 XmlSerializer() 不使用函数创建一个xmlSerializer对象。 XmlSerializer(Type type) 使用type对象创建一个xmlSerializer对象&#xff0c;注意&…

欢迎 Llama 3:Meta 的新一代开源大语言模型

介绍 Meta 公司的 Llama 3 是开放获取的 Llama 系列的最新版本&#xff0c;现已在 Hugging Face 平台发布。看到 Meta 持续致力于开放 AI 领域的发展令人振奋&#xff0c;我们也非常高兴地全力支持此次发布&#xff0c;并实现了与 Hugging Face 生态系统的深度集成。 Llama 3 提…

【Day 3】Ajax + Vue 项目、路由 + Nginx

1 Ajax Asynchronous JavaScript And XML 异步的 JavaScript 和 XML 作用&#xff1a; 数据交换 通过 Ajax 可以给服务器发送请求&#xff0c;并获取服务器响应的数据 异步交互 可以在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页的技术&#xf…

【SpringBoot实战篇】获取用户详细信息

1 明确需求 1需要获取用户详细信息 2 接口文档 1基本信息 2请求参数 无 3 响应数据 响应数据类型&#xff1a;application/json 响应参数说明&#xff1a; 响应数据样例 3 思路分析 1用户名在请求头里获取 4 开发 4.1 控制器usercontroller GetMapping("/userInfo")p…

IntelliJ IDEA2020下使用Maven构建Scala 项目

1.创建maven文件 2.进入pom.xml导入依赖 <!--添加spark的依赖--><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.1</version></dependency><!--添加scala依…

一文读懂uniapp中的tabBar底部导航

目录 1. 基本知识2. Demo 1. 基本知识 UniApp 中的 tabBar 是用来在应用程序底部显示可切换的选项卡的组件&#xff0c;通常用于实现底部导航栏 允许用户通过点击不同的选项卡来切换应用程序的不同页面或功能模块 其代码如下&#xff1a; "tabBar":{"color&q…

Android,判断是否快速点击

问题背景 在Android控件中&#xff0c;如果快速点击容易造成一些不同的bug&#xff0c;尤其是那种在click事件中方有耗时操作的代码&#xff0c;容易引起anr&#xff0c;并且有些性能低的机器&#xff0c;在用户点击多次控件的时候很容易出现问题&#xff0c;在车机中也会导致…