[LintCode 488] 快乐数 (Python)
来源:互联网 发布:鹊桥淘宝客商家入口 编辑:程序博客网 时间:2024/06/05 04:21
题目描述
写一个算法来判断一个数是不是”快乐数”。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
思路
根据题干对快乐数的定义,我们很容易想到用循环结构来判断是否为快乐数。但是如果给定的是非快乐数,循环终止的条件在哪里呢?这就需要我们了解快乐数的循环结构。
-对于快乐数,如19,会有如下的循环过程:19->82->68->100->1
-对于非快乐数,如61,会有如下的循环过程:61->37->58->89->145->42->20->4->16->37
非快乐数最后会进入序列 4->16->37->58->89->145->42->20 的死循环
代码如下
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 tmp = 0 while tmp != 1 and tmp != 4: tmp = 0 n = str(n) for i in n: tmp += int(i) ** 2 if tmp == 1: return True n = tmp if tmp == 1: return True return False
阅读全文
0 0
- [LintCode 488] 快乐数 (Python)
- lintcode python代码 488 快乐数
- LintCode 488快乐数
- [Lintcode] #488 快乐数
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- LintCode之快乐数
- lintcode,快乐数
- LintCode 快乐数
- lintcode--快乐数
- LintCode之快乐数
- lintcode:快乐数
- 快乐数-LintCode
- Lintcode快乐数问题解析
- LintCode Python 丑数II
- 488-快乐数
- lintcode python代码 517丑数
- Servlet与JSP间的传值
- HTML5_DHTML-表单-计算器
- CDH迁移中元数据库的备份--脚本
- ifstream 的使用方法介绍
- 常见的android面试的问题
- [LintCode 488] 快乐数 (Python)
- 澳门拥抱阿里云:全面应用智能技术,为城市装上“大脑”
- Linux文件读写机制及优化方式
- Springboot基础篇 之细节处理(在持续更新中。。。。)
- 虚拟现实的艺术特点
- D
- jquery 获取第一个元素的方法
- hpuoj【1319】小写换大写【字符串】
- Linux 获取文件大小--C函数