题目:企业发放的奖金根据利润提成。利润(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和switch解决,并且switch比if效率高,这里偷懒直接通三元表达式写了,有兴趣的同学可以试试其他两种方法解决
public class prize {
public static void main(String ar[]){
long stime = System.currentTimeMillis();
Scanner scanner =new Scanner(System.in);
System.out.println("input profit(万元): ");
double profit = scanner.nextDouble();
double prize ;
System.out.println(
prize=(profit<=10)?(profit*0.1)
:((profit>10&&profit<=20)?(((profit-10)*0.075)+10*0.1)
:((profit>20&&profit<=40)?(((profit-20)*0.05)+10*0.1+10*0.075)
:((profit>40&&profit<=60)?((profit-40)*0.03+10*0.1+10*0.075+20*0.05)
:((profit>60&&profit<=100)?((profit-60)*0.15+10*0.1+10*0.075+20*0.05+20*0.03)
:((profit-100)*0.01+10*0.1+10*0.075+20*0.05+20*0.03+40*0.01)
))))
);
long etime = System.currentTimeMillis();
System.out.println("此程序运行时间是:"+(etime-stime)+"ms");
}
}