码迷,mamicode.com
首页 > 编程语言 > 详细

算法--leetcode 728. Self Dividing Numbers

时间:2017-12-17 16:59:29      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:div   ble   nta   声明   不能   contain   contains   str   eve   

题目:

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型数的位数

算法--leetcode 728. Self Dividing Numbers

标签:div   ble   nta   声明   不能   contain   contains   str   eve   

原文地址:http://www.cnblogs.com/derek-dhw/p/8052203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!