zoukankan      html  css  js  c++  java
  • LeetCode:202. 快乐数

    1、题目描述

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

    一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。

    示例: 

    输入: 19
    输出: true
    解释: 
    12 + 92 = 82
    82 + 22 = 68
    62 + 82 = 100
    12 + 02 + 02 = 1
    

    2、题解

    2.1、解法一

    class Solution(object):
        count = 0
        def isHappy(self, n):
            """
            :type n: int
            :rtype: bool
            """
            if n == 1:
                return True
            l = []
            while n:
                a,b = divmod(n,10)
                l.append(b)
                n = a
            # if len(l) ==1:
            #     return False
            # else:
            self.count += 1
    
            if self.count >100:
                return False
            l.reverse()
            print(l)
            ret = 0
            for i in l:
                ret += i**2
            if ret == 1:
                return True
            else:
                ret = self.isHappy(ret)
            return ret
    

    2.2、解法二

    class Solution(object):
        def isHappy(self, n):
            """
            :type n: int
            :rtype: bool
            """
    
            temp = []
    
            def get_add(n):
                ret = 0
                while n != 0:
                    g = n % 10
                    ret += g ** 2
                    n = int(n / 10)
                return ret
    
            while True:
                n = get_add(n)
    
                if n == 1:
                    return True
                elif n in temp:
                    return False
                else:
                    temp.append(n)
    

      

  • 相关阅读:
    同步与异步 & 阻塞与非阻塞
    Memcached和Redis比较
    PHP安全之Web攻击
    搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
    PHP安装mysql.so扩展
    MySQL基础笔记
    CGI概念
    Nginx与Apache比较
    Nginx重写
    负载均衡session会话保持方法
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10065685.html
Copyright © 2011-2022 走看看