求助一道py题
n=int(input())a,l=0,[]
while a<n: #输入次数,几个人
b,c=map(int,input().split())
a+=1
for i in range(c): #阶乘求发鞭炮的时间
l.append(b*i)
k=set(l) #过滤掉重复时间的个数
print(len(k))
我的做法不知道哪里算法错了,不通过,问问大佬们有什么更好的算法 n=int(input('请输入人数'))
a,l=0,[]
while a<n: #输入次数,几个人
b,c=input('请输入间隔时间和放的鞭炮数并以空格分开').split()
b=int(b)
c=int(c)
a+=1
for i in range(c): #阶乘求发鞭炮的时间
l.append(b*i)
k=set(l) #过滤掉重复时间的个数
print(len(k))
主要就在b,c这里出错了,每次循环都只输入一个人的数据,你map什么,而且就算你map了之后,b和c都是迭代器,而不是整数类型 本帖最后由 小伤口 于 2020-12-15 11:35 编辑
#定义函数获取每个小朋友放鞭炮的时间
def one(x,y):
d=x
i=0
a=[]
while 1:
if i<y:
i+=1
a.append(x)
x+=d
else:
return a
break
#将输入数据放入函数得出的结果存放列表c中
n=int(input(''))
c=[]
while 1:
if n>0:
temp,guess=input('').split()
temp=int(temp)
guess=int(guess)
one(temp,guess)
c.append(one(temp,guess))
n-=1
else:
break
#通过for循环将重复的过滤掉打印len(list1)
d=len(c)
list1=[]
for i in range(0,d):
for f in c:
if f not in list1:
list1.append(f)
print(len(list1))
我这个比楼主的想法麻烦
楼主参考下就行
你会写的比我好的{:10_250:}
洋洋痒 发表于 2020-12-15 10:22
主要就在b,c这里出错了,每次循环都只输入一个人的数据,你map什么,而且就算你map了之后,b和c都是迭 ...
谢谢,理解了,没有理解迭代器这个,现在知道了
页:
[1]