鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 354

[复制链接]
 楼主| 发表于 2020-3-20 17:50:55 | 显示全部楼层
fan1993423 发表于 2020-3-19 18:33
楼主是不是我最快,是最佳答案啊

好像有人比你快哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 21:37:38 | 显示全部楼层
zltzlt 发表于 2020-3-20 17:47
输入 elft = 47, right = 85 有错,结果多了个 1

def day354(left, right):
  if not(left < 1):
    numberlist = []
    nnl = []

    for i in range(left ,right):
      numberlist.append(i + 1)
    for i in range(len(numberlist)):
      pass2 = 1
      number = numberlist[i]
      nlist = list(str(number))
      pass1 = 0
      for i2 in nlist:
        if i2 == "0":
          pass2 = 0
      if not(pass2 == 0):   
        for each in range(len(str(number))):
          if int(nlist[each]) == 0:
            pass1 += 1
          elif number % int(nlist[each]) == 0:
            pass1 += 1  
        if pass1 == len(str(number)):        
          nnl.append(number)
    print(nnl)   
def day354(left, right):
  if not(left < 1):
    numberlist = []
    nnl = []

    for i in range(left ,right):
      numberlist.append(i + 1) 
    for i in range(len(numberlist)):
      pass2 = 1
      number = numberlist[i]
      nlist = list(str(number))
      pass1 = 0
      for i2 in nlist:
        if i2 == "0":
          pass2 = 0
      if not(pass2 == 0):    
        for each in range(len(str(number))):
          if int(nlist[each]) == 0:
            pass1 += 1
          elif number % int(nlist[each]) == 0:
            pass1 += 1  
        if pass1 == len(str(number)):        
          nnl.append(number)
    print(nnl)    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 12:11:43 | 显示全部楼层
zltzlt 发表于 2020-3-19 17:44
解答错误

输入:left = 47, right = 85
left = 47
right = 85        

def q354(left, right):
    DivSelf = []    
    for each in range(left, right+1):
        if '0' not in (string := str(each)):
            count = 0
            for key in (num := set(string)):           #之前的判定条件为:将存在于该数(A)中的不相同元素相乘所得(B)相除(A%B)余数为0就可判定是不能满足的,比如48
                if each%(int(key)) == 0:#将判定条件改为:若每个元素都可以被A整除 那么一定为自除数,但是计算迭代次数增加(最多计算9次)
                    count += 1
            if count == len(num):
                DivSelf.append(each)
            count = 0
    return DivSelf

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 10:22:32 | 显示全部楼层
a=int(input('请输入一个整数:'))
def increase(a):
    b=[]
    while 1:
        c=a%10
        a=a//10
        b.append(c)
        if a==0:
            break
    return b
while a:
    m=increase(a)
    l=len(m)
    b=0
    for i in range(l-1):
        if m[i]>=m[i+1]:
            b+=1
    if b==l-1:
        print(a)
        break
    a-=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-10 14:03:58 | 显示全部楼层
def fun354(left,right):
    
    def self_counting(x):
        if '0' in str(x):
            return False
        list_counting = [x%int(i) for i in str(x)]
        if len(set(list_counting)) != 1:
            return False
        return True

    result = [i for i in range(left,right+1) if self_counting(i)]
    return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 11:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表