美文网首页
202. Happy Number

202. Happy Number

作者: a_void | 来源:发表于2016-09-09 20:31 被阅读0次

    Write an algorithm to determine if a number is "happy".

    A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.

    **Example: **19 is a happy number
    ![](http://www.forkosh.com/mathtex.cgi? \left 1^2 + 9^2 = 82)
    ![](http://www.forkosh.com/mathtex.cgi? \Small 8^2 + 2^2 = 68)
    ![](http://www.forkosh.com/mathtex.cgi? \Small 6^2 + 8^2 = 100)
    ![](http://www.forkosh.com/mathtex.cgi? \Small 1^2 + 0^2 + 0^2 = 1)

    class Solution(object):
        def isHappy(self, n):
            """
            :type n: int
            :rtype: bool
            """
            def fun(num):
                s = str(num)
                v = 0
                for x in s:
                    v += (int(x) - int('0')) * (int(x) - int('0'))
                return v
            if n <= 0:
                return False;
            d = {};
            while(True):
                if n == 1:
                    return True
                if n in d.keys():
                    return False
                else:
                    d[n] = 1
                    n = fun(n)
    

    相关文章

      网友评论

          本文标题:202. Happy Number

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