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

力扣Lc20--- 202.快乐数(java版)-2024年3月20日

1.题目

在这里插入图片描述

2.知识点

(1)while (seen.contains(n) == false) {
// 循环体
}

!seen.contains(n)
等同
(2)

当传入数字 19 给 isHappy(19) 方法时,下面是每一行代码的执行过程:

初始化一个空的 HashSet,命名为 ss,用于存储已经计算过的数字。

声明并初始化 sum 变量为 0,用于存储各位数字的平方和。

进入 while 循环。由于 n 的初始值不等于 1,且 ss 集合中不包含 n,因此循环条件成立,进入循环体。

将当前的数字 n,即 19,添加到集合 ss 中。

调用 GetNext(n) 方法计算 n 的下一个数字。在 GetNext() 方法中,我们首先将 n 的个位数字取出并计算其平方,然后将其相加得到 sum,即 1^2 + 9^2 = 1 + 81 = 82。

将计算得到的 sum 值赋给 n。

继续循环,此时 n 的值为 82。

重复上述步骤,将 82 添加到 ss 集合中,并通过 GetNext() 方法计算下一个数字。在 GetNext() 方法中,计算 82 的各位数字的平方和得到 68,并将其赋给 n。

循环继续执行,此时 n 的值为 68。

重复上述步骤,将 68 添加到 ss 集合中,并通过 GetNext() 方法计算下一个数字。在 GetNext() 方法中,计算 68 的各位数字的平方和得到 100,并将其赋给 n。

循环继续执行,此时 n 的值为 100。

重复上述步骤,将 100 添加到 ss 集合中,并通过 GetNext() 方法计算下一个数字。在 GetNext() 方法中,计算 100 的各位数字的平方和得到 1,并将其赋给 n。

此时,循环继续执行,但是 n 的值已经等于 1,不满足循环条件,退出循环。

返回 n == 1,因为 n 的值为 1,所以返回 true,说明数字 19 是一个快乐数。

这就是对于数字 19 的每一行代码的执行过程。

3.代码实现

import java.util.HashSet;
import java.util.Set;public class Solution {public boolean isHappy(int n) {Set<Integer>  ss=new HashSet<>();while(n!=1&&ss.contains(n)==false){//循环判断条件是 当n不等于1的时候继续循环  并且 ss集合里面不能重复出现已出现的数ss.add(n);n=GetNext(n);}return n ==1;}private int GetNext(int n){int sum=0;while(n>0)//当n是正整数的时候{int digit=n%10;//从左到右取每个位的数 sum=sum+digit*digit;//将这个数平方n=n/10;//左移一位,数字缩写10倍//举个例子// int digit=n%10; 19%10=9//sum=81//n=1//1%10=1//sum=1+81=82}return sum;}
}
http://www.lryc.cn/news/322946.html

相关文章:

  • 机器学习----交叉熵(Cross Entropy)如何做损失函数
  • Linux docker3--数据卷-nginx配置示例
  • 力扣454. 四数相加 II
  • vulnstack1 渗透分析 红日靶场(一)
  • 外包干了6天,技术明显进步。。。
  • 比较好的知识点
  • 抖音开放平台的订单类API接口调用测试指南(内含详细步骤)
  • HiveSQL一本通 - 案例实操
  • Axure RP 8中文---快速原型设计工具,一站式解决方案
  • Available platform plugins are: minimal, offscreen, webgl, windows.
  • 创意无限,风险有度:2024愚人节海外网红营销策略解析
  • 深入理解 Session、Cookie 和 Token:网络安全和身份验证的重要概念
  • 镜像站汇总
  • 设计模式之抽象工厂模式解析
  • 【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT
  • UnityShader(十九) AlphaBlend
  • 3D Tiles语义分割流水线
  • txt、pdf等文件转为一行一行的doccano数据集输入格式
  • java Flink(四十二)Flink的序列化以及TypeInformation介绍(源码分析)
  • 社科赛斯考研:二十二载岁月铸辉煌,穿越周期的生命力之源
  • 【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结
  • win10 禁止谷歌浏览器自动更新(操作贼简单)
  • LeetCode每日一题【24. 两两交换链表中的节点】
  • jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合
  • 易基因:人类大脑的单细胞DNA甲基化和3D基因组结构|Science
  • Nginx中设置反向代理
  • 无线局域网——wlan
  • ASP.NET 服务器控件
  • [数据集][目标检测]麻雀检测数据集VOC+YOLO格式1157张1类别
  • 嵌入式学习第二十九天!(数据结构的概念、单向链表)