题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
算法:大部分人看到这道题时最先想到的做法是写if语句,然后每个if语句下列个计算公式,这种算法减轻了我们思考的压力,然而码起代码来却是十分心塞,在某网页上看到一个简单算法,代码简洁明了,也为我们在遇到类似的题目时提供了另外一个思路。代码如下:
def bonus_count(n):
r=0
arr=[1000000,600000,400000,200000,100000,0]
rat=[0.01,0.015,0.03,0.05,0.075,0.1]
for i in range(6):
if n>arr[i]:
r+=(n-arr[i])*rat[i]
print(r)
n=arr[i]
return r
>>> bonus_count(120000)
1500.0
11500.0
11500.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)