• 算法--leetcode 728. Self Dividing Numbers


    题目:

    self-dividing number is a number that is divisible by every digit it contains.

    For example, 128 is a self-dividing number because 128 % 1 == 0128 % 2 == 0, and 128 % 8 == 0.

    Also, a self-dividing number is not allowed to contain the digit zero.

    Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.

    题意:

    self-dividing number 可理解为自除数,第三行可知 自除数不能含有数字0

    判定自除数的规则:

    把一个数num逐位分离(使用取余运算%10每次取出个位数),判断这个数num能否被分离出的数整除,如果所有位都能整除当前数num,则这个数num为 自除数

    输入输出格式:

    Input: 
    left = 1, right = 22
    Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

    输入最小值和最大值(left和right)判断这个范围内的所有自除数,并返回一个 List

    Python:

    class Solution(object):
        def selfDividingNumbers(self, left, right):
            """
            :type left: int
            :type right: int
            :rtype: List[int]
            """
            rat=[]
            for i in range(left,right+1):
                num=len(str(i))
                flag=1
                j=i
                while(i):
                    t=i%10
                    if not t or j%t !=0:
                        flag=0
                        break
                    i/=10
                if flag:
                    rat.append(j)
            return rat

    语法总结:

    rat=[]可以声明一个空的列表,如果当前数是自除数,则使用rat.append()可以将当前数加入列表

    使用左右范围时,需要将right+1

    if 后必须跟一个冒号

    num=len(str(i))可以求一个int型数的位数

  • 相关阅读:
    python 利用爬虫获取页面上下拉框里的所有国家
    python3 requests 进行接口测试、爬虫使用总结
    Tomcat设置最佳线程数总结
    Java中实现对象的比较:Comparable接口和Comparator接口
    堆排序算法
    快速排序算法2---以第一个元素作为主元
    字符串匹配---暴力匹配算法
    快速排序算法
    Spring中@Autowired注解与自动装配
    Spring的注解
  • 原文地址:https://www.cnblogs.com/derek-dhw/p/8052203.html
Copyright © 2020-2023  润新知