美文网首页
快乐数 (lintcode:happy-number)

快乐数 (lintcode:happy-number)

作者: v1coder | 来源:发表于2018-02-20 13:07 被阅读0次

写一个算法来判断一个数是不是"快乐数"。

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

n = 61
print isHappy(n)

lintcode 原题
思路的 出处

20180220

相关文章

  • 快乐数 (lintcode:happy-number)

    写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位...

  • LeetCode学习计划:LeetCode 75-Level-2

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 问题描述...

  • 快乐数

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 题目编写...

  • 202.快乐数 不快乐的时候做个快乐题!

    202.快乐数[https://leetcode-cn.com/problems/happy-number/sol...

  • OJ Lintcode 快乐数

    写一个算法来判断一个数是不是"快乐数"。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置...

  • lintcode 丑数

    设计一个算法,找出只含素因子2,3,5 的第 n 大的数。直接寻找丑数,由定义可知,丑数是由2m,3n,5^l,因...

  • 202. Happy Number

    https://leetcode.com/problems/happy-number/#/description

  • [Lintcode][java]回文数

    判断一个正整数是不是回文数。样例11, 121, 1, 12321 这些是回文数。23, 32, 1232 这些不...

  • lintcode 三数之和

    给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。注意...

  • lintcode 落单的数(|,||,|||)

    (|)给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2...

网友评论

      本文标题:快乐数 (lintcode:happy-number)

      本文链接:https://www.haomeiwen.com/subject/gokgtftx.html