【每周一练】第16期:一年的幸运数和超级幸运数
本帖最后由 hveagle 于 2022-11-22 21:48 编辑大家好,今天是【每周一练】的第16期
这次的每周一练由我帮助用户 @高山 发帖
(祖传开头)
上一期:第15期
当今现代的题目名称
一年的幸运数和超级幸运数
追本溯源的题目说明
*该题目和年份有关,该说明是2022年(11月13日)
如果五位数2022A可以和一位数A整除,那么一位数A就是2022年的幸运数
如果六位数2022AB可以和两位数AB整除,那么两位数AB就是2022年的超级幸运数
提示:不能除以0,0在任何年都不是幸运数或超级幸运数
要求简单的输出格式
*该题目和年份有关,该输出是2022年(11月13日)的幸运数和超级幸运数
结构复杂的程序代码
*该题目和年份有关,该代码是2022年(11月13日)的幸运数和超级幸运数
**** Hidden Message *****
最佳答案的程序代码
最佳答案1元豪
最佳答案2等待着聪明的Python王者
最佳答案3等待着聪明的Python王者
元豪(第1名,有印章)
**** Hidden Message *****
? ? ?(第2名)
空空如也
? ? ?(第3名)
空空如也
下一期:第17期
抄袭罚5鱼币! 本帖最后由 高山 于 2022-11-13 16:23 编辑
做的不错啊,加油 是这样吗?
如:20226 % 6 == 0、202230 % 30 == 0就是超级幸运数了?
那样代码应该就没问题
e = '2022'
u = []
l = []
for i in range(1, 10):
if int(e + str(i)) % i == 0:
u.append(i)
for i in range(10, 100):
if int(e + str(i)) % i == 0:
l.append(i)
print(u)
print(l)
元豪 发表于 2022-11-13 17:04
是这样吗?
如:20226 % 6 == 0、202230 % 30 == 0就是超级幸运数了?
那样代码应该就没问题
202203%3 == 0也算超级幸运数(改了一下) 本帖最后由 dolly_yos2 于 2022-11-14 09:57 编辑
仅作者可见是什么新模式?
from datetime import datetime
year = datetime.now().year
print(
list(filter(lambda x:year * 10 % x == 0, range(1,10))),
list(filter(lambda x:year * 100 % x == 0, range(10,100))),
sep='\n'
) 开一下作者可见吧,你回复我我看不见呀{:10_266:}{:10_266:} 元豪 发表于 2022-11-13 18:58
开一下作者可见吧,你回复我我看不见呀
能吗 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 =
list_double_digits =
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)) 三个晾衣架 发表于 2022-11-13 19:50
class Lucky_num:
lucky_num = []
发代码样式,并且代码数太多了 {:5_108:} hveagle 发表于 2022-11-13 20:39
发代码样式,并且代码数太多了
其实我是课后题做完了,想复习的全面一点,就想多用一些知识点,没有专门为了效率 本帖最后由 zhangjinxuan 于 2022-11-14 09:03 编辑
t = 2022
ans1 = list()
ans2 = list()
for i in range(1, 10):
if (t * 10 + i) % i == 0:
ans1 +=
for i in range(1, 100):
if (t * 100 + i) % i == 0:
print(t * 100 + i, i)
ans2 +=
print(ans1, ans2, sep = '\n')
答案代码有这两个问题
lucky_number = [] #不能写lucky_number = super_lucky_number =[] ,不然lucky_number 干啥super_lucky_number也干啥
super_lucky_number = []
for i in range(20221, 20230):
a = i - 20220
if i % a == 0:
lucky_number.append(a)
for j in range(202201, 202300): #不知道你的数据范围是什么,个位的AB也算吗?
ab = j - 202200
if j % ab == 0: #此处不应该是a,应该是ab
super_lucky_number.append(ab)
print(lucky_number)
print(super_lucky_number)
y = input("请输入需要计算幸运数的年份:")
list_one = []
list_two = []
for i in range(1,10):
if (int(y)*10 + i) % i == 0:
list_one.append(i)
for j in range(10,100):
if (int(y)*100 +j) % j == 0:
list_two.append(j)
print(list_one,list_two,sep="\n") 答案代码有问题,详见13# zhangjinxuan 发表于 2022-11-14 12:17
答案代码有问题,详见13#
>>> XXII = 成都 = 22
>>> XXII
22
>>> 成都
22
>>> 成都 = 15
>>> 成都
15
>>> XXII
22
>>> #? hveagle 发表于 2022-11-20 18:32
什么意思?我说的是代码有问题{:10_277:} zhangjinxuan 发表于 2022-11-14 08:57
答案代码有这两个问题
202201 1
202202 2
202203 3
202204 4
202205 5
202206 6
202208 8
202210 10
202212 12
202215 15
202220 20
202224 24
202225 25
202230 30
202240 40
202250 50
202260 60
202275 75
#只要最后两行 hveagle 发表于 2022-11-21 07:04
if j % a == 0:
我不理解,这儿为什么写 a??? {:7_146:}
页:
[1]
2