题目
企业发放的奖金根据利润提成。利润低于或等于100,000元的,奖金可提10%;利润高于100,000元,低于200,000(100,000 < p <=200,000)时,100,000元及以内部分按10%提成,高于100,000元的部分,可提成7.5%;
200,000 < p <= 400,000时,200,000元及其以内的部分仍按上述办法提成(下同),高于200,000元的部分按5%提成;
400,000 < p <=600,000元时,高于400,000元的部分按3%提成;
600,000 < p <=1,000,000时,高于600,000元的部分按1.5%提成;
p >1,000,000时,超过1,000,000元的部分按1%提成。
按上述需求,编写一个程序,该程序从键盘输入当月利润p,求应发奖金数。
输入格式:
利润总额(浮点数)
输出格式:
奖金数(保留两位小数)
输入样例:
230000
输出样例:
19000.00
解题
题目代码:
p = float(input())
if p<100001:
print("%.2f"%(p * 0.1))
elif p<200001:
print("%.2f"%(10000 + (p - 100000) *0.075))
elif p<400001:
print("%.2f"%(17500 + (p - 200000) *0.05))
elif p<600001:
print("%.2f"%(27500 + (p - 400000) *0.03))
elif p<1000001:
print("%.2f"%(33500 + (p - 600000) *0.015))
else:
print("%.2f"%(39500 + (p - 1000000) *0.01))
代码解释:
我在这道题的解题中对前面可获得的最高金额都计算出来进行作为常数参与计算,然后根据if-else的性质,判断条件只需要给出一边即可满足判断需求,就不需要再使用and重复了,只需要计算出所在范围内多余的可获得的金额(和前一范围所占百分比不同)加起来即可得出结果,结果需要是两位小数,用%.2f即可
总结
这道题主要是考验怎么去计算所得金额,然后是怎么用if-else更好得进行判断