zoukankan      html  css  js  c++  java
  • LeetCode202欢乐数

    # coding:utf-8
    """
    Name : LeetCode202.py
    Author  : qlb
    Contect : 17801044486@163.com
    Time    : 2021/2/5 10:49
    Desc: 快乐数
    """
    #「当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。」 用set
    #解题思路:根据题意可知,在整个过程中,数字会变为1 或者进入无限循环两种情况。变为1 则返回True 进入循环则返回False。
    # 那么如何判断是否进入循环呢?很简单,把每次的求和结果保存起来,求和完之后查看当前的值是否以前出现过,如果出现过,
    #证明进入循环了 返回False 否则就继续更新求和 如果出现1 返回True
    class Solution:
        def isHappy(self, n: int) -> bool:
            if n <= 0:
                return False
            else:
                resNum = self.compuHappy(n)
                return resNum
        #求一个整数各个位数的数字平方和 两种方法
        def getSum1(self,n):
            sum = 0
            n = str(n)
            for i in n:
                i = int(i)
                sum += i ** 2
            return sum
        def getSum2(self,n):
            sum = 0
            while n != 0:
                num = n % 10 #求出末位数 也就是个位数
                sum += num**2
                n = n // 10 #去掉末尾数 也就是去掉各位数 一轮一轮地把各位数取出来
            return sum
    
        def compuHappy(self,n):
            tmp = set()
            while True:
                sum = self.getSum2(n)
                if sum in tmp:
                    return False
    
                n = sum
                tmp.add(n)
                if n == 1:
                    return True
    
    
    
    test = Solution()
    res = test.isHappy(10)
    print (res)
  • 相关阅读:
    webp怎么打开 webp怎么转换成jpg
    波浪运动
    缓动
    动画的封装
    单张滑动tab 组件
    明星单品tab
    多个tab选项卡
    下拉框
    购物车css样式效果
    菜单导航兼容和不兼容捕获方法
  • 原文地址:https://www.cnblogs.com/cnugis/p/14377910.html
Copyright © 2011-2022 走看看