不知道为什么题发不出来,就用照片的形式,原题是法语的
以下是我写的
dict_year_member={}
for i in range(2007,2050):
member=1.08**(i-2007)*100
member=round(member)
dict_year_member[i]=member
while True:
number=input('enter number')
if number=='1':
year=int(input('输入年份'))
while year<2007:
year=int(input('输入年份'))
print(f'{year} have {dict_year_member[year]} members')
elif number=='2':
year=int(input('输入年份'))
if year<=2007:
print(f'2007 have 100 members')
else:
for i in range(2007,year+1):
print(f'{i} have {dict_year_member[i]}')
elif number=='3':
_sum=0
year=int(input('输入年份'))
for i in range(2007,year+1):
_sum+=dict_year_member[i]
print(f'2007 to {year},have {_sum} members total')
elif number=='4':
m=int(input('输入人数'))
n=m
k=0
while m>100:
m/=1.08
k+=1
print(f'{k+2007} will be {n} members')
elif number=='Q':
break
题目中4,115人在201九年获得,我键盘坏了,输入不了九的数字
每年增加百分之8,为什么你写的1.8?变成百分之80?而且你写的也有问题,像你这么写,number=100就完事了,为什么要写【100】变成列表呢?
1.你的for循环错误,for i in range(A,B);可以取到A,不能取到B,这个一定要记住,像你这么写n-2017,那么你输入2018,i是取不到1的。
2.你的年份公式错误,每年增长百分之A,那么n年之后的人数应该是:
N=number*(1+A)**n
而不是简单的直接用for循环乘一下,像你这么写,你的每个N都是相等的,也就没有啥意义。