蓝桥杯入门即劝退(二十)快乐数(我不快乐了)
欢迎===关注===点赞===评论,共同学习,共同进步!
------持续更新蓝桥杯入门系列算法实例--------
如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流!
你的点赞、关注、评论、是我创作的动力!
-------希望我的文章对你有所帮助--------
一、题目描述
编写一个算法来判断一个数 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)解题思路
1、首先明确,对于n的每位数字平方和的求解是一个重复工作,因此可以写一个方法用于计算n的求值和sum;
2、其次判断是否一个死循环的数,即最后得不到1。
3、因此,使用Set集合来校验是否出现过相同的数,使用contains()方法判断即可。
(2)代码实现
public boolean isHappy(int n) {//快乐数哈希表法Set<Integer> Happy=new HashSet<>();while (n!=1&&!Happy.contains(n)){Happy.add(n);//没有重复数即加入集合n=Sum(n);}return n==1;//判断是否n为1}
public static int Sum(int n){int sum=0;while (n>0){int temp=n%10;//求各位上的数sum+=temp*temp;n/=10;//缩位}return sum;}
(二)、双指针(快慢指针)法
(1)解题思路
1、同样需要用到Sum求值静态方法。
2、快慢指针原理是即:当出现循环的n值时,fast指针由于要多走一步,换成坐标系参考即相当slow于原地不动,fast每次移动一格,如果是循环那么fast必然会再次遇到slow。
3、当slow与fast相遇时,如果是1则符合条件,否则为循环的值,false;
(2)代码实现
public boolean isHappy2(int n)//快慢指针法{int slow=n,fast=n;//同时出发while (fast!=1&&fast!=slow){slow=Sum(slow);fast=Sum(fast);fast=Sum(fast);}return fast==1;}public static int Sum(int n){int sum=0;while (n>0){int temp=n%10;sum+=temp*temp;n/=10;}return sum;}
发文不易,恳请大佬们高抬贵手!
点赞:随手点赞是种美德,是大佬们对于本人创作的认可!
评论:往来无白丁,是你我交流的的开始!
收藏:愿君多采撷,是大佬们对在下的赞赏!
相关文章:
蓝桥杯入门即劝退(二十)快乐数(我不快乐了)
欢迎关注点赞评论,共同学习,共同进步! ------持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章…...

Aspose.Imaging for .NET V23
Aspose.Imaging for .NET V23 Aspose.Imaging for.NET是帮助开发人员在自己的应用程序中创建、编辑、绘制或转换图像的类库。它包括在不安装Photoshop或任何其他图像编辑器的情况下以Adobe Photoshop原生格式保存的功能。Aspose.Imaging for.NET是一个灵活稳定的API,…...

通信算法复习题纲
通信算法复习题1、当信源发送信号满足以下哪一项条件时,接收端采用最小距离准则进行判决等价于采用最大后验概率准则进行判决?2、OFDM系统的正交性体现在哪个方面?3、模拟信号数字化过程中,哪一步会引入量化噪声?4、OF…...

交叉编译 MQTT/Mosquitto
交叉编译 MQTT/Mosquitto 概述 Eclipse Mosquitto 是一个开源(EPL/EDL许可)消息代理,它实现了 MQTT 协议版本 5.0、3.1.1 和 3.1。Mosquitto 重量轻,适用于从低功耗单板计算机到全服务器的所有设备。 MQTT 协议提供了一种使用发…...
无重复字符的最长子串的解法
class Solution {public int lengthOfLongestSubstring(String s) {// 哈希集合,记录每个字符是否出现过Set<Character> occ new HashSet<Character>();int n s.length();// 右指针,初始值为 -1,相当于我们在字符串的左边界的左…...

Apache Hadoop生态部署-zookeeper单机安装
目录 查看服务架构图-服务分布、版本信息 一:安装前准备 1:zookeeper安装包选择--官网下载 2:zookeeper3.5.7安装包--百度网盘 二:安装与常用配置 2.1:下载解压zk安装包 2.2:配置修改 2.3࿱…...

java面试题-IO流
基础IO1.如何从数据传输方式理解IO流?IO流根据处理数据的类型可以分为字节流和字符流。字节流字节流以字节(8位)为单位读写数据。字节流主要用于读写二进制文件,如图片、音频、视频等。Java中的InputStream和OutputStream就是字节…...
Java性能-GC工具
GC工具(帮助分析程序性能 WE always need THAT TO help US) 开启GC日志 JDK 8 -verbose:gc 开启gc -XX:PrintGC 打印gc信息 -XX:PrintGCDetails 打印详细信息 -XX:PrintGCTimeStamps 相对于jvm启动时间0值开始 -XX:PrintGCDateStamps 日期字符串 -Xloggc:filename gc输入日志…...

复赛名单公布!2022隐私计算HACKATHON大赛火热进行中!
开放隐私计算开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。183篇原创内容公众号O…...

微信小程序的全局弹窗以及全局实例
全局组件 微信小程序组件关系中,父组件使用子组件需要在父组件index.json中引入子组件,然后在父组件页面中使用,这种组件的对应状态是一对一的,一个组件对应一个页面。如果有一个全局弹窗(登录)࿰…...

100种思维模型之诺依曼思维模型-019
生活中,难免总会遇到一些“大”、“笼统”、“难入手”的问题! 如,前几天突然接到领导安排,帮忙梳理一个材料“***景区创建5A级旅游景区提升规划”。 对于一个没有学过景区提升规划、没有做过规划的我来说,真的挺难的…...

Python + Airtest + poco + pytest + pytest-html 实现Android App自动化测试框架
Python Airtest poco pytest pytest-html 实现Android App自动化测试框架 一、背景 为了尝试除Appium外的测试框架,本文将介绍基于网易的airtest框架为基础,配合poco及pytest实现对Android App的自动化测试。 二、框架介绍 框架集成使用airtest p…...
一篇文章让你学会spring
Spring6 1、概述 1.1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简…...

golang入门笔记——测试
测试类型: 单元测试: 规则: 1.所有测试文件以_test.go结尾 2.func Testxxx(*testing.T) 3.初始化逻辑放到TestMain中 运行: go test [flags][packages]Go语言中的测试依赖go test命令。 go test命令是一…...
【CSAPP】整数运算
文章目录无符号加法练习1练习2补码加法练习1练习2练习3练习4补码的非练习无符号乘法补码乘法练习1练习2练习3乘以常数练习1练习2除以2的幂练习1练习2关于整数运算的最后思考练习无符号加法 考虑两个非负整数x和y,满足0≤x,y<2w0 \le x, y < 2^w0≤x,y<2w&…...

使用 xshell 远程连接(使用 xftp 远程传输)
xshell 和 xftp的使用都基于ssh协议,我们需要先在远程服务端或者虚拟机上安装ssh服务,然后才能远程连接。 目录 1、什么是ssh协议? 2、安装 openssh (1) 安装 openssh 服务器 (2) 关闭服务器防火墙(或者开放端口22)…...
一个例子搞懂子网划分及子网掩码的计算
前置知识: 1、标准ip地址分为A、B、C、D、E五类,分类标准是ip地址的前几个比特位的值。 我们知道ip地址是32位比特-4字节组成,A类地址则是由首位为0,首字节为网络地址,其余3字节为主机地址组成,A类网络地址…...

SPI机制源码:JDK Dubbo Spring
JDK 17 Dubbo 3.1.6 JDK SPI JDK SPI在sql驱动类加载、以及slf4j日志实现加载方面有具体实现。 示例 public class Test {private static final Logger logger LoggerFactory.getLogger(Test.class);public static void main(String[] args) {ServiceLoader<JdkSpiServi…...

Spring Security+jwt+redis+自定义认证逻辑 权限控制
Spring Securityjwtredis自定义认证逻辑 权限控制 1.拦截访问基本思路 2.创建数据库表:角色表(应该6个表,这里只用用户表代替角色表)、权限表、路径表、角色-权限表、权限-路径表 /* SQLyog Professional v12.14 (64 bit) MySQL…...

打游戏什么蓝牙耳机好用?打游戏比较好的蓝牙耳机
游戏耳机提供身临其境的细致声音,同时也是与朋友在线聊天的绝佳通信设备,尤其对于游戏玩家来说,聆听和被聆听的最佳方式之一就是游戏耳机,那2023年到底有哪些值得购买的游戏耳机呢?现在就让我们一起来看看吧。 第一款…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...