问题描述:

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

一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 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

最新文章

  1. linux限制ftp账户的访问路径
  2. <hr/> 水平线样式
  3. Mybatis学习记录(四)----resultMap的使用
  4. Java Hour 38 Weather ( 11 ) – fastjson
  5. Java Annotation手册
  6. paip.php eclipse output echo 乱码
  7. GNU GRUB version 0.97 (630K lower /2053824K upper memory)
  8. 【Asp.Net】后台生成控件并绑定事件
  9. 飘逸的python - 赛程表算法
  10. EBS 数据库预克隆日志
  11. python3 列表 函数
  12. year:2017 month:7 day:20
  13. WPF 10天修炼 第十天- WPF数据绑定
  14. T4 反射实体模型生成代码(Demo)
  15. input 设置 width:100% 和padding后宽度超出父节点
  16. java.util.Stack(栈)的简单使用
  17. C++编程相关工具
  18. PAT 甲级 1011 World Cup Betting (20)(20 分)
  19. myeclipse项目 不能打开
  20. 300最长上升子序列 · Longest Increasing Subsequence

热门文章

  1. Linux命令: ls -l显示文件和目录的详细资料
  2. xargs 原理&使用
  3. vijos 1360 八数码问题 - 启发式搜索
  4. Java实现心跳机制
  5. sqlite3 的一些整理和补充
  6. Python3基础 os listdir curdir pardir 查看工作目录及其上一级目录的所有文件名
  7. 利用RNN(lstm)生成文本【转】
  8. POJ3241 Object Clustering(最小生成树)题解
  9. HDU1540 Tunnel Warfare(线段树区间维护&求最长连续区间)题解
  10. insert into 和 where not exists