LeetCode--202--快乐数
2024-10-20 06:16:59
问题描述:
编写一个算法来判断一个数是不是“快乐数”。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
示例:
输入: 19
输出: true
解释:
1
2
+ 9
2
= 82
8
2
+ 2
2
= 68
6
2
+ 8
2
= 100
1
2
+ 0
2
+ 02 = 1
方法1:while循环每次计算每位的平方之和。当sum_ == 1 时return True,为了陷入死循环,设置list,每次sum_放进去,当再次发现相同的sum_时,说明已经计算过了,return FALSE
class Solution(object):
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
temp = []
while True:
sum_ = 0
while n // 10:
sum_ += (n % 10)**2
n = n // 10
sum_ += (n % 10)**2
if sum_ == 1:
return True
n = sum_
if sum_ in temp:
return False
temp.append(sum_)
2018-09-17 19:18:36
最新文章
- linux限制ftp账户的访问路径
- <;hr/>; 水平线样式
- Mybatis学习记录(四)----resultMap的使用
- Java Hour 38 Weather ( 11 ) &ndash; fastjson
- Java Annotation手册
- paip.php eclipse output echo 乱码
- GNU GRUB version 0.97 (630K lower /2053824K upper memory)
- 【Asp.Net】后台生成控件并绑定事件
- 飘逸的python - 赛程表算法
- EBS 数据库预克隆日志
- python3 列表 函数
- year:2017 month:7 day:20
- WPF 10天修炼 第十天- WPF数据绑定
- T4 反射实体模型生成代码(Demo)
- input 设置 width:100% 和padding后宽度超出父节点
- java.util.Stack(栈)的简单使用
- C++编程相关工具
- PAT 甲级 1011 World Cup Betting (20)(20 分)
- myeclipse项目 不能打开
- 300最长上升子序列 &#183; Longest Increasing Subsequence