菜狗


私信TA

用户名:dotcpp0661016

访问量:388

签 名:

keep smiling,never give up.

等  级
排  名 43835
经  验 339
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 B站大学
专  业 CS

  自我简介:

解题思路: 对于不同区间的利润,我们实际要计算的是超出该利润部分的奖金,那么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分

1 人评分

  评论区

  • «
  • »