zoukankan      html  css  js  c++  java
  • 算法--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型数的位数

  • 相关阅读:
    WEB开发中合理选择图片格式
    Ext.ux.form.LovCombo bug修正
    Ext.grid.PropertyGrid 扩展
    BLOG代码高亮
    Box2D教程1创建碰撞世界
    Box2D教程2鼠标交互
    Box2D教程5碰撞检测
    Box2D教程3刚体绑定外观
    管窥HTML5
    Box2D教程4复杂刚体的复杂外观
  • 原文地址:https://www.cnblogs.com/derek-dhw/p/8052203.html
Copyright © 2011-2022 走看看