快乐数|快乐数 (lintcode:happy-number)
写一个算法来判断一个数是不是"快乐数"。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为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 的死循环
代码:
def isHappy(n):
result = 0
while result != 1 and result != 4:
result = 0
n = str(n)
for i in n:
result = int(i)**2 + result
n = result
if result == 1:
return True
return Falsen = 61
print isHappy(n)
【快乐数|快乐数 (lintcode:happy-number)】lintcode 原题
思路的 出处
20180220
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 第三节|第三节 快乐和幸福(12)
- 画解算法(1.|画解算法:1. 两数之和)
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 拉黑家人一整年之后,以为会快乐,最后却抑郁症!!
- LintCode|LintCode 545 [Top k Largest Number II]
- 2021/1/15|2021/1/15 数幸福