本帖最后由 sunrise085 于 2018-12-19 14:12 编辑
对于多次if...else...判断就不写了。我写了三个版本,第一个版本中有三个列表,分别是利润数轴列表、奖金比例列表、分段奖金列表,程序先判断利润在哪个区间,然后去查表计算总奖金。mylist1 = [1000000,600000,400000,200000,100000,0]
mylist2 = [0.01,0.015,0.03,0.05,0.075,0.1]
mylist3 = [39500,33500,27500,17500,10000,0]
I = input('请输入当前月利润I:')
I = int(I)
for i in range(0,len(mylist1)):
if I > mylist1[i]:
break
fee = (I-mylist1[i]) * mylist2[i]+mylist3[i]
print ('奖金总数:',fee)
第二个版本中有两个列表,分别是利润数轴列表、奖金比例列表,直接循环计算总奖金。mylist1 = [1000000,600000,400000,200000,100000,0]
mylist2 = [0.01,0.015,0.03,0.05,0.075,0.1]
I = 150000#input('请输入当前月利润I:')
temp = int(I)
fee = 0
for i in range(0,len(mylist1)):
if temp > mylist1[i]:
fee += (temp-mylist1[i]) * mylist2[i]
temp = mylist1[i]
print ('奖金总数:',fee)
第三个版本是将第二个版本进行改进,利用函数写了一个递归,通过递归函数计算总奖金。def fee(I):
mylist1 = [1000000,600000,400000,200000,100000,0]
mylist2 = [0.01,0.015,0.03,0.05,0.075,0.1]
for i in range(0,len(mylist1)):
if I > mylist1[i]:
fees = (I - mylist1[i]) * mylist2[i] + fee(mylist1[i])
break
if I == 0:
return 0
return fees
I = input('请输入当前月利润I:')
temp = int(I)
print ('奖金总数:',fee(I))
|