题:
企业发放的奖金根据利润提成。利润 (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 ,求应发放奖金总数
代码一:
var i = window.prompt('利润','i');
var jj = 0;
if(i <= 100000){
jj = i * 0.1;
}else if(i <= 200000){
jj = i * 0.075;
}else if (i <= 400000){
jj = i * 0.05;
}else if (i <= 600000){
jj = i * 0.03;
}else if(i <= 1000000){
jj = i * 0.015;
}else if(i > 1000000){
jj = i * 0.01;
}
console.log(jj);
代码二:
var i = window.prompt("请输入利润","i");
var bonus;
if(i<=100000)
{
bonus=i0.1;
}
else if(i<=200000)
{
bonus=i 0.1+(i-100000) * 0.075;
}
else if (i<=400000)
{
bonus=i * 0.1+100000 * 0.075+(i-200000) * 0.05;
}
else if(i<=600000)
{
bonus=i * 0.1+100000 * 0.075+200000 * 0.05+(i-400000) * 0.03;
}
else if(i<=1000000)
{
bonus=i * 0.1+100000 * 0.075+200000 * 0.05+400000 * 0.03+(i-600000) * 0.015;
}
else if (i>1000000)
{
bonus=i * 0.1+100000 * 0.075+200000 * 0.05+400000 * 0.03+600000 * 0.015+(i-1000000) * 0.01;
}
console.log(bonus);
请问代码一有问题吗(计算上),代码二算出来和实际中感觉不一样!算术不太好,请指点!
反向算,先算超出100W的,之后把超出的这部分利润减掉。再算超出60W的。以此类推。
比如利润120W
var total=120;
(total-100)*0.01
total=total-(total-100)
。。。
我的意思是:不是代码,而是算法。这2个算法谁对,谁错!为什么?
@ln0909: 第二个是对的
@清海扬波: 我突然明白了!
@ln0909: 第一个种算法,利润10W,提成1W,利润100W,提成1.5W。先不考虑算法,这样做的公司注定要倒闭的。
@清海扬波: 是我曲解了题意