鱼C论坛

 找回密码
 立即注册
查看: 7643|回复: 105

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

[复制链接]
发表于 2020-3-18 19:17:06 | 显示全部楼层
来了,刚看到,写个无脑版本。
  1. def day354(left, right):
  2.   numberlist = []
  3.   nnl = []
  4.   for i in range(left ,right):
  5.     numberlist.append(i + 1)
  6.   for i in range(len(numberlist)):
  7.     number = numberlist[i]
  8.     nlist = list(str(number))
  9.     pass1 = 0
  10.     for each in range(len(str(number))):
  11.       if int(nlist[each]) == 0:
  12.         pass1 += 1
  13.       elif number % int(nlist[each]) == 0:
  14.         pass1 += 1  
  15.     if pass1 == len(str(number)):        
  16.       nnl.append(number)
  17.   print(nnl)   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 19:18:51 | 显示全部楼层
fan1993423 发表于 2020-3-17 17:39
这道题思路很容易想到,但考虑到是效率题,所以还是要从效率入手。在323055,41520421这数据,我测了下是14 ...

10不是吗 ,我输1,10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 19:27:03 | 显示全部楼层
小甲鱼de粉丝 发表于 2020-3-18 19:17
来了,刚看到,写个无脑版本。

我重发
  1. def day354(left, right):
  2.   if not(left < 1):
  3.     numberlist = []
  4.     nnl = []
  5.     for i in range(left ,right):
  6.       numberlist.append(i + 1)
  7.     for i in range(len(numberlist)):
  8.       pass2 = 1
  9.       number = numberlist[i]
  10.       nlist = list(str(number))
  11.       pass1 = 0
  12.       for i2 in nlist:
  13.         if i2 == "0":
  14.           pass2 = 0
  15.       if not(pass2 == 0):   
  16.         for each in range(len(str(number))):
  17.           if int(nlist[each]) == 0:
  18.             pass1 += 1
  19.           elif number % int(nlist[each]) == 0:
  20.             pass1 += 1  
  21.         if pass1 == len(str(number)):        
  22.           nnl.append(number)
  23.     print(nnl)   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 19:33:49 | 显示全部楼层

这个,抱歉,发现有bug

  1. def day354(left, right):
  2.   if not(left < 1):
  3.     numberlist = []
  4.     nnl = []
  5.     numberlist.append(1)
  6.     for i in range(left ,right):
  7.       numberlist.append(i + 1)
  8.     for i in range(len(numberlist)):
  9.       pass2 = 1
  10.       number = numberlist[i]
  11.       nlist = list(str(number))
  12.       pass1 = 0
  13.       for i2 in nlist:
  14.         if i2 == "0":
  15.           pass2 = 0
  16.       if not(pass2 == 0):   
  17.         for each in range(len(str(number))):
  18.           if int(nlist[each]) == 0:
  19.             pass1 += 1
  20.           elif number % int(nlist[each]) == 0:
  21.             pass1 += 1  
  22.         if pass1 == len(str(number)):        
  23.           nnl.append(number)
  24.     print(nnl)   
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
zltzlt + 3 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 21:10:15 | 显示全部楼层
fan1993423 发表于 2020-3-18 20:21
我的意思是大数据可能会超时,版主出题要不就是比较难,要不就是简单但要求大数据通过且高效率

小甲鱼最新课程 -> https://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)   
  1. def day354(left, right):
  2.   if not(left < 1):
  3.     numberlist = []
  4.     nnl = []

  5.     for i in range(left ,right):
  6.       numberlist.append(i + 1)
  7.     for i in range(len(numberlist)):
  8.       pass2 = 1
  9.       number = numberlist[i]
  10.       nlist = list(str(number))
  11.       pass1 = 0
  12.       for i2 in nlist:
  13.         if i2 == "0":
  14.           pass2 = 0
  15.       if not(pass2 == 0):   
  16.         for each in range(len(str(number))):
  17.           if int(nlist[each]) == 0:
  18.             pass1 += 1
  19.           elif number % int(nlist[each]) == 0:
  20.             pass1 += 1  
  21.         if pass1 == len(str(number)):        
  22.           nnl.append(number)
  23.     print(nnl)   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-28 07:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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