Java黑皮书课后题第5章:*5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。你的目标是一年挣30000美元,编写程序找最小销售额
5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。你的目标是一年挣30000美元,编写程序,找完成目标的最小销售额
- 题目
- 题目概述
- 破题
- 代码
- 运行示例
题目
题目概述
5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。使用下面的方法确定你的提成率。
| 销售额 | 提成率 |
|---|---|
| 0.01~5000美元 | 8% |
| 5000.01~10000美元 | 10% |
| 10000.01美元以上 | 12% |
注意:这是一个渐进提成率。第一个5000美元的提成率8%,下一个5000美元的提成率10%,余下是12%。如果销售额是25 000,提成则是5000 * 8%+5000 * 10% + 15000 * 12% = 2700
你的目标是一年挣30000美元,编写程序,找完成目标的最小销售额
破题
目标-基本=提成,30000-5000=25000
所以至少要提成25000
所以用25000和两个临界值进行比较(销售额为5000和10000对应的提成)
①比两个都小:在第一档内计算最小销售额
②比一个大比一个小:第二档计算最小销售额
③比两个都大:第三档计算最小销售额
代码
import java.util.Scanner;public class Test5_39 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入目标总收入:");int target = input.nextInt() - 5000;// 判断大小int boundary1 = 400;int boundary2 = 900;boolean bool1 = (target > boundary1) && (target > boundary2);boolean bool2 = (target > boundary2) || (target > boundary1);// 计算最小销售额if((bool1 && bool2 == true) && (bool1 || bool1 == true)){//大于10 000部分System.out.printf("最小销售额为:%.2f" , (target - boundary2) / 0.12 + 10000);}else if ((bool1 && bool2 == false) && (bool1 || bool1 == true)){//小于5 000部分System.out.printf("最小销售额为:%.2f" , target / 0.8);}else {// 大于5 000小于10 000部分System.out.printf("最小销售额为:%.2f" , (target - boundary1) / 0.1 + 5000);}}
}
运行示例
请输入目标总收入:
30000
最小销售额为:210833.33
Process finished with exit code 0
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
