【程序12】
题目:企业发放的奖金根据利润提成。利润(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%提成,从键盘输入当月利润,求应发放奖金总数?
package com.share.test11_20;
import java.util.Scanner;
/**
* 【程序12】题目:<br>
* 企业发放的奖金根据利润提成。<br>
* 利润(I)低于或等于10万元时,奖金可提10%;<br>
* 利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分,可可提成7.5%;<br>
* 20万到40万之间时,高于20万元的部分,可提成5%;<br>
* 40万到60万之间时高于40万元的部分,可提成3%;<br>
* 60万到100万之间时,高于60万元的部分,可提成1.5%,<br>
* 高于100万元时,超过100万元的部分按1%提成,<br>
* 从键盘输入当月利润,求应发放奖金总数?
*
* @author brx
*/
public class Test12 {
public static void main(String[] args) {
test();
}
/**
* 思路:<br>
* 按照题意,这种算奖金是按照区间来依次累加的,从最上层的区间考虑起,<br>
* 每一层完了进入下一层区间依次累加,顺序执行和if条件判断的完美结合
*/
public static void test() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入当月的利润:(单位:万元)");
double d = sc.nextDouble();
double result = 0;
if (d > 100) {
result += (d - 100) * 0.01;
d = 100;
}
if (d > 60) {
result += (d - 60) * 0.015;
d = 60;
}
if (d > 40) {
result += (d - 40) * 0.03;
d = 40;
}
if (d > 20) {
result += (d - 20) * 0.05;
d = 20;
}
if (d > 10) {
result += (d - 10) * 0.075;
d = 10;
}
result += d * 0.1;
System.out.println("当月的奖金为:" + result);
}
}