news 2026/7/22 1:24:15

快乐数——哈希表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快乐数——哈希表

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

「快乐数」定义为:

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

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

思路:不容易判断的点在于无限循环的情况。

数字平方和一定会让数变小

设一个数有 k 位,那么它的最大值是:10^k - 1。

它的各位数字最大是 9。每位平方最大是 81。

所以 k 位数的平方和最大是:81 * k。

而 k 位数本身至少是:10^(k-1)

比较:

位数最小 k 位数数位平方和最大值
310081 * 3 = 243
4100081 * 4 = 324
51000081 * 5 = 405

你会发现:

从 4 位数开始,下一步一定会掉到 324 以下。

从这开始,无论你多大,最终都会掉进一个固定的小范围内。

✔ 情况 A:最终变成 1(快乐)

✔ 情况 B:在某处形成循环(不快乐)

所以无限循环,也就是非快乐数,必然意味着某个数重复出现。

class Solution: def isHappy(self, n: int) -> bool: s=set() while True: n=self.getSum(n) if n==1: return True else: if n in s: return False s.add(n) def getSum(self,n): sum = 0 while n: sum+=(n%10)**2 n//=10 return sum print(Solution().isHappy(19))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 16:58:51

Amlogic盒子刷Armbian系统全攻略:从入门到精通

Amlogic盒子刷Armbian系统全攻略:从入门到精通 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像,支持多种设备,允许用户将安卓TV系统更换为功能强大的A…

作者头像 李华
网站建设 2026/7/19 22:41:45

Xray编辑器启动性能深度优化策略

Xray编辑器启动性能深度优化策略 【免费下载链接】xray An experimental next-generation Electron-based text editor 项目地址: https://gitcode.com/gh_mirrors/xray/xray 在当今快速迭代的开发环境中,文本编辑器的启动速度直接影响着开发者的工作效率。X…

作者头像 李华
网站建设 2026/7/22 1:16:47

IPP-8007:面向2500-6000 MHz应用的双向20dB耦合器, 现货库存

型号介绍:今天我要向大家介绍的是 Innovative Power Products 的一款耦合器——IPP-8007。 它能够以20dB的固定比例从主信号路径中“引出”一小部分信号,这个比例的精确度很高,波动范围控制在0.7 dB以内。被引出的这部分信号可以用于监测、测…

作者头像 李华
网站建设 2026/7/18 2:43:19

电视盒子刷机终极方案:高安版设备完整避坑指南

你猜我发现了什么?一台被认为"无法刷机"的高安版电视盒子,现在居然完美运行着Armbian系统!🚀 经过72小时的持续探索,我终于找到了解决高安设备限制的完整方案。 【免费下载链接】amlogic-s9xxx-armbian amlo…

作者头像 李华
网站建设 2026/7/21 17:39:33

ssm 框架的校园二手交易市场系统

项目概述校园二手商品市场系统基于SSM框架(SpringSpringMVCMyBatis)开发,旨在为在校学生提供二手商品交易平台。系统包含用户管理、商品发布、交易撮合、消息通知等核心功能模块。技术栈后端框架:Spring 5.x SpringMVC MyBatis …

作者头像 李华
网站建设 2026/7/21 2:17:06

Tabula终极指南:5步快速从PDF提取表格数据的完整教程

Tabula终极指南:5步快速从PDF提取表格数据的完整教程 【免费下载链接】tabula Tabula is a tool for liberating data tables trapped inside PDF files 项目地址: https://gitcode.com/gh_mirrors/ta/tabula Tabula是一款革命性的开源工具,专门用…

作者头像 李华