万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7."/>
实例002:“个税计算” 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.
实例002:“个税计算”
# **题目:**企业发放的奖金根据利润提成。 # 利润(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,求应发放奖金总数?
#题目分析 """ 当我们进行手算的时候,是这样算的:假设是1500000,是大于10000万的,下面我们来是手算: 10w*0.1+10w*0.075+20w*0.05+20w*0.03+40w*0.015+50w*0.01 """ # **程序分析:**分区间计算即可
依照我们手算的过程,在算法中,我们也根据区间来计算,如果输入的利润profit小于或等于 thresholds[i]时,则用profit计算完当前区间对应的利率加在奖金bonus上后就退出,否则就用当前区间对应的金额*对应区间的利率加在奖金bonus上后,profit再减掉当前区间对应的金额再进入for循环。在金额区间内的利率是有对应区间段利率的,高于100万的部分对应利率1%也就是0.01。如果在前面我们的利润是小于等于100万的,那么profit在走出循环的时候是0,在输出发放的奖金总数前计算的高于100万的奖金时就是0*0.01=0。
for j in range(10): # 可以测试10次profit = int(input('请输入你的利润金额: ')) #input输入的是字符串类型,要用int()转为整数bonus = 0thresholds = [100000, 100000, 200000, 200000, 400000] # 分区间计算rates = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]for i in range(len(thresholds)):print(profit, "--", i, "thresholds[i]", thresholds[i], "rates[i]", rates[i])if profit <= thresholds[i]:bonus += profit * rates[i]profit = 0breakelse:bonus += thresholds[i] * rates[i]profit -= thresholds[i]print(profit)bonus += profit * rates[-1] # 这里就是计算高于100w部分的奖金print(" 发放的奖金总数为: ", bonus)
输出结果:
请输入你的利润金额: 1500000
1500000 -- 0 thresholds[i] 100000 rates[i] 0.1
1400000
1400000 -- 1 thresholds[i] 100000 rates[i] 0.075
1300000
1300000 -- 2 thresholds[i] 200000 rates[i] 0.05
1100000
1100000 -- 3 thresholds[i] 200000 rates[i] 0.03
900000
900000 -- 4 thresholds[i] 400000 rates[i] 0.015
500000发放的奖金总数为: 44500.0
更多推荐
实例002:“个税计算” 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10
发布评论