解题思路: 对于不同区间的利润,我们实际要计算的是超出该利润部分的奖金,那么remain代表超出利润区间最小值的部分,bonus是全部的奖金,使用布尔类型的flag来控制循环的进退。每计算完一个区间的奖金,那么利润就要减去这个超出的部分,以此进入下一个区间。如此循环一直到profit利润小于等于10 0000块的时候,累加bonus利润后便可退出循环。

注意事项:理清逻辑,我讲清楚没有?

参考代码:


    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int profit = scanner.nextInt();// 利润 


        int remain = 0;// 超出部分计算奖金


        int bonus = 0;// 奖金

        

         boolean flag = true;

        

         while(flag) {

        

             if(profit > 1000000) {

                 remain = profit - 1000000;

                 bonus += (remain * 0.01);

                 profit -= remain;

                

             }else if(profit > 600000) {

                 remain = profit - 600000;

                 bonus += (remain * 0.015);

                 profit -= remain;

            

             }else if(profit > 400000) {

                 remain = profit - 400000;

                 bonus += (remain * 0.03);

                 profit -= remain;

            

             }else if(profit > 200000) {

                 remain = profit - 200000;

                 bonus += (remain * 0.05);

                 profit -= remain;

            

             }else if(profit > 100000) {

                 remain = profit - 100000;

                 bonus += (remain * 0.075);

                 profit -= remain;

            

             }else {

                 bonus += (profit * 0.1);

                 flag = false;

             }

    }

        System.out.println(bonus);

}



点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论