LintCode Python 简单级题目 488.快乐数
题目描述:
写一个算法来判断一个数是不是"快乐数"。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例
19 就是一个快乐数。
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
题目分析:
将数字n按位转化为列表,然后循环求元素的平方和,只至结果n==1 or n ==4;
建议百度快乐数的循环结构。
非快乐数总是进入下列重复数列中:
4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4
例如非快乐数8、14:
8 → 64 → 52 → 29 → 85 → 89 → 145 → 42 → 20 → 4
14 → 17 → 50 → 25 → 29 → 85 → 89 → 145 → 42 → 20 → 4
例如快乐数7:
7 → 49 → 97→ 130 → 10 → 1
在十进位下,100以内的快乐数有(OEIS中的数列A00770) :1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100。
源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Solution: # @param {int} n an integer # @return {boolean} true if this is a happy number or false def isHappy( self , n): # Write your code here if n is None : return False while n ! = 1 and n ! = 4 : nums = list ( str (n)) n = 0 for i in nums: n + = int (i) * * 2 # 循环结束,返回结果 if n = = 1 : return True if n = = 4 : return False |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥