企业发放的奖金根据利润提成。利润 (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% 提成。从键盘输入当月利润 lirun,求应发放奖金总数 sum?
本题是一个典型的分段累进提成(阶梯式提成)问题,类似于个人所得税的累进税率计算。关键在于:每一利润区间只对超出部分按对应比例提成,而非全部利润统一按最高档计算。提成规则如下(单位:万元):
输入当月利润:(万元)
50
应发的奖金是:3.45(万元)该问题属于分段线性函数,奖金 是利润 的分段函数:
其中常数项为前几段的累计奖金:
10 万时:
20 万时:
40 万时:
60 万时:
100 万时:
import java.util.Scanner;
public class Demo12 {
public static void main(String[] args) {
System.out.println("输入当月利润:(万元)");
Scanner in = new Scanner(System.in);
double lirun = in.nextDouble();
double sum;
if (lirun <= 10) {
sum = lirun * 0.1;
} else if (lirun <= 20) {
sum = 10 * 0.1 + (lirun - 10) * 0.075;
} else if (lirun <= 40) {
sum = 10 * 0.1 + 10 * 0.075 + (lirun - 20) * 0.05;
} else if (lirun <= 60) {
sum = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (lirun - 40) * 0.03;
} else if (lirun <= 100) {
sum = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (lirun - 60) * 0.015;
} else {
sum = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (lirun - 100) * 0.01;
}
System.out.println("应发的奖金是:" + sum + "(万元)");
}
}输入 10 → 输出 1.0
输入 20 → 输出 1.75
输入 40 → 输出 2.75
输入 60 → 输出 3.35
输入 100 → 输出 3.95
输入 150 → 输出 3.95 + 50×0.01 = 4.45
此类阶梯提成模型广泛应用于:
企业销售提成制度
个人所得税累进税率(如中国个税)
电费 / 水费分段计价
电商平台佣金分层
它体现了“多劳多得、边际激励递减”的管理思想,既能激励员工提升业绩,又控制企业成本增速。在编程中,此类问题训练学生对分段函数和边界条件处理的能力。