鱼C论坛

 找回密码
 立即注册
查看: 5906|回复: 22

[已解决]【每周一练】第16期:一年的幸运数和超级幸运数

[复制链接]
发表于 2022-11-13 15:11:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 hveagle 于 2022-11-22 21:48 编辑

大家好,今天是【每周一练】的第16期

这次的每周一练由我帮助用户 @高山 发帖

(祖传开头)


上一期:第15期

当今现代的题目名称
一年的幸运数和超级幸运数
追本溯源的题目说明
*该题目和年份有关,该说明是2022年(11月13日)
如果五位数2022A可以和一位数A整除,那么一位数A就是2022年的幸运数
如果六位数2022AB可以和两位数AB整除,那么两位数AB就是2022年的超级幸运数
提示:不能除以0,0在任何年都不是幸运数或超级幸运数
要求简单的输出格式
*该题目和年份有关,该输出是2022年(11月13日)的幸运数和超级幸运数
  1. [1, 2, 3, 4, 5, 6]
  2. [3, 12, 21, 30, 39, 48, 57, 66, 75, 84, 93]
复制代码

结构复杂的程序代码
*该题目和年份有关,该代码是2022年(11月13日)的幸运数和超级幸运数
游客,如果您要查看本帖隐藏内容请回复
[/hide]
最佳答案的程序代码
最佳答案1元豪
最佳答案2等待着聪明的Python王者
最佳答案3等待着聪明的Python王者

元豪(第1名,有印章)
游客,如果您要查看本帖隐藏内容请回复
[/hide]
? ? ?(第2名)
空空如也
? ? ?(第3名)
空空如也

下一期:第17期

抄袭罚5鱼币!
最佳答案
2022-11-13 17:04:33
是这样吗?
如:20226 % 6 == 0、202230 % 30 == 0就是超级幸运数了?
那样代码应该就没问题
  1. e = '2022'
  2. u = []
  3. l = []
  4. for i in range(1, 10):
  5.     if int(e + str(i)) % i == 0:
  6.         u.append(i)
  7. for i in range(10, 100):
  8.     if int(e + str(i)) % i == 0:
  9.         l.append(i)
  10. print(u)
  11. print(l)
复制代码

评分

参与人数 2荣誉 +5 鱼币 +10 收起 理由
嘉岳呀 + 5
高山 + 5 + 5 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2022-11-13 16:09:32 | 显示全部楼层
本帖最后由 高山 于 2022-11-13 16:23 编辑

做的不错啊,加油
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-13 17:04:33 | 显示全部楼层    本楼为最佳答案   
是这样吗?
如:20226 % 6 == 0、202230 % 30 == 0就是超级幸运数了?
那样代码应该就没问题
  1. e = '2022'
  2. u = []
  3. l = []
  4. for i in range(1, 10):
  5.     if int(e + str(i)) % i == 0:
  6.         u.append(i)
  7. for i in range(10, 100):
  8.     if int(e + str(i)) % i == 0:
  9.         l.append(i)
  10. print(u)
  11. print(l)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-13 18:26:39 | 显示全部楼层
元豪 发表于 2022-11-13 17:04
是这样吗?
如:20226 % 6 == 0、202230 % 30 == 0就是超级幸运数了?
那样代码应该就没问题


202203%3 == 0也算超级幸运数(改了一下)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-13 18:56:43 | 显示全部楼层
本帖最后由 dolly_yos2 于 2022-11-14 09:57 编辑

仅作者可见是什么新模式?
  1. from datetime import datetime
  2. year = datetime.now().year
  3. print(
  4.     list(filter(lambda x:year * 10 % x == 0, range(1,10))),
  5.     list(filter(lambda x:year * 100 % x == 0, range(10,100))),
  6.     sep='\n'
  7. )
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-13 18:58:35 | 显示全部楼层
开一下作者可见吧,你回复我我看不见呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-13 19:27:46 | 显示全部楼层
元豪 发表于 2022-11-13 18:58
开一下作者可见吧,你回复我我看不见呀

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

使用道具 举报

发表于 2022-11-13 19:50:50 | 显示全部楼层
class Lucky_num:

    lucky_num = []
    super_lucky_num = []

    def __init__(self, year):
        self.year = year

    def is_lucky_num_single_digits(self, num):
        if (self.year*10+num) % num == 0:
            return True
        else:
            return False

    def is_lucky_num_double_digits(self, num):
        if (self.year*100+num) % num == 0:
            return True
        else:
            return False

year = int(input('请输入今年年份:'))
A = Lucky_num(year)
list_single_digits = [i for i in range(1, 10)]
list_double_digits = [i for i in range(10, 100)]

for each in list_single_digits:
    if A.is_lucky_num_single_digits(each):
        A.lucky_num.append(each)

for each in list_double_digits:
    if A.is_lucky_num_double_digits(each):
        A.super_lucky_num.append(each)

print('今年的幸运数为:%s,\n超级幸运数为:%s' % (A.lucky_num, A.super_lucky_num))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-13 20:39:23 | 显示全部楼层
三个晾衣架 发表于 2022-11-13 19:50
class Lucky_num:

    lucky_num = []

发代码样式,并且代码数太多了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 00:09:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-11-14 08:06:18 | 显示全部楼层
hveagle 发表于 2022-11-13 20:39
发代码样式,并且代码数太多了

其实我是课后题做完了,想复习的全面一点,就想多用一些知识点,没有专门为了效率
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 08:52:53 | 显示全部楼层
本帖最后由 zhangjinxuan 于 2022-11-14 09:03 编辑
  1. t = 2022
  2. ans1 = list()
  3. ans2 = list()
  4. for i in range(1, 10):
  5.     if (t * 10 + i) % i == 0:
  6.         ans1 += [i]

  7. for i in range(1, 100):
  8.     if (t * 100 + i) % i == 0:
  9.         print(t * 100 + i, i)
  10.         ans2 += [i]

  11. print(ans1, ans2, sep = '\n')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 08:57:51 | 显示全部楼层
答案代码有这两个问题
  1. lucky_number = [] #不能写lucky_number = super_lucky_number =[] ,不然lucky_number 干啥super_lucky_number也干啥
  2. super_lucky_number = []
  3. for i in range(20221, 20230):
  4.     a = i - 20220
  5.     if i % a == 0:
  6.         lucky_number.append(a)
  7. for j in range(202201, 202300): #不知道你的数据范围是什么,个位的AB也算吗?
  8.     ab = j - 202200
  9.     if j % ab == 0: #此处不应该是a,应该是ab
  10.         super_lucky_number.append(ab)
  11. print(lucky_number)
  12. print(super_lucky_number)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 09:16:54 | 显示全部楼层
  1. y = input("请输入需要计算幸运数的年份:")
  2. list_one = []
  3. list_two = []

  4. for i in range(1,10):
  5.     if (int(y)*10 + i) % i == 0:
  6.         list_one.append(i)
  7. for j in range(10,100):
  8.     if (int(y)*100 +j) % j == 0:
  9.         list_two.append(j)

  10. print(list_one,list_two,sep="\n")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 12:17:54 | 显示全部楼层
答案代码有问题,详见13#
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-20 18:32:13 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 12:17
答案代码有问题,详见13#
  1. >>> XXII = 成都 = 22
  2. >>> XXII
  3. 22
  4. >>> 成都
  5. 22
  6. >>> 成都 = 15
  7. >>> 成都
  8. 15
  9. >>> XXII
  10. 22
  11. >>> #?
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-20 18:36:46 | 显示全部楼层

什么意思?我说的是代码有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-21 07:04:52 | 显示全部楼层
zhangjinxuan 发表于 2022-11-14 08:57
答案代码有这两个问题
  1. 202201 1
  2. 202202 2
  3. 202203 3
  4. 202204 4
  5. 202205 5
  6. 202206 6
  7. 202208 8
  8. 202210 10
  9. 202212 12
  10. 202215 15
  11. 202220 20
  12. 202224 24
  13. 202225 25
  14. 202230 30
  15. 202240 40
  16. 202250 50
  17. 202260 60
  18. 202275 75
  19. [1, 2, 3, 4, 5, 6]
  20. [1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 25, 30, 40, 50, 60, 75]
  21. #只要最后两行
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-21 07:47:02 | 显示全部楼层
  1. if j % a == 0:
复制代码

我不理解,这儿为什么写 a???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-22 07:18:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 22:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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