解题思路:

本题总共有6种情况,分别是:

①    利润低于或等于100000元时

       即i<=100000

②    利润高于100000元,低于200000元时

       即100000<i≤200000

③    200000<i≤400000时

④    400000<i≤600000元时

⑤    600000<i≤1000000时

⑥    i>1000000时

我们分别取900,100000,200000,256000,400000,600000,1000000,1500000几个数来计算验证。

 

1.当取900时,此时的利润区间在①利润低于或等于100000元时这个区间, 奖金为利润的10%,所以利润为:

900*0.1=90

 

2.当取100000时,此时的利润区间在①利润低于或等于100000元时这个区间, 奖金为利润的10%,所以利润为:

100000*0.1=10000

 

3. 当取150000时,此时的利润空间为①利润低于或等于100000元和②利润高于10000元,低于200000元这两个区间,奖金分别为10%和7.5%,所以此时的利润为:

100000*0.1+[(150000-100000)*0.075]=10000+7500=13750

 

4.当取200000时,此时的利润空间为①利润低于或等于100000元和②利润高于10000元,低于200000元这两个区间,奖金分别为10%和7.5%,所以此时的利润为:

100000*0.1+[(200000-100000)*0.075]=10000+7500=17500

 

5. 当取256000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元和③200000<i≤400000这三个区间,奖金分别为10%和、7.5%和5%,所以此时的利润为:

100000*0.1+100000*0.075+[(256000-200000)*0.05]=10000+7500+2800=20300


6. 当取400000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元和③200000<i≤400000这三个区间,奖金分别为10%和、7.5%和5%,所以此时的利润为:

100000*0.1+100000*0.075+[(400000-200000)*0.05]=10000+7500+10000=27500

 

7. 当取600000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000和    ④400000<i≤600000元这四个区间,奖金分别为10%和、7.5%、5%和3%,所以此时的利润为:

100000*0.1+100000*0.075+200000*0.05+[(600000-400000)*0.03]=10000+7500+10000+6000=33500

 

8. 当取1000000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000、④400000<i≤600000元和⑤600000<i≤1000000这五个区间,奖金分别为10%和、7.5%、5%、3%和1.5%,所以此时的利润为:

100000*0.1+100000*0.075+200000*0.05+200000*0.03+[(1000000-600000)*0.015]=10000+7500+10000+6000+6000=39500

 

9. 当取1500000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000、④400000<i≤600000元和、⑤600000

100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+[(1500000-1000000)*0.01]= 10000+7500+10000+6000+6000+5000=44500



注意事项:


从利润高于100000元时,每个阶段的奖金都要进行计算


参考代码:

#include <stdio.h>

int main() {
    int i;
    scanf("%d", &i);
    if (i <= 100000) {//①    利润低于或等于100000元时
        i = i * 0.1;
    } else if (100000 < i && i <= 200000) {//②    利润高于100000元,低于200000元时
        i = (100000 * 0.1) + (i - 100000) * 0.075;
    } else if (200000 < i && i <= 400000) {//③    200000<i≤400000时
        i = (100000 * 0.1) + 100000 * 0.075 + (i - 200000) * 0.05;
    } else if (400000 < i && i <= 600000) {//④    400000<i≤600000元时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03;
    } else if (600000 < i && i <= 1000000) {//⑤    600000<i≤1000000时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
    } else {//⑥    i>1000000时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
    }
    printf("%d\n", i);
    return 0;
}



点赞(0)
 

0.0分

92 人评分

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

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

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

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

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

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

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

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

评论列表 共有 73 条评论

初原 1年前 回复TA
#include<stdio.h>
int main()
{
    int i,j;
    scanf("%d",&i);
    if(i<=100000){
        j=i/10;
    }
    else if(i<=200000){
        j=(i-100000)*7.5/100+10000;
    }
    else if(i<=400000){
        j=(i-200000)*5/100+17500;
    }
    else if(i<=600000){
        j=(i-400000)*3/100+27500;
    }
    else if(i<=1000000){
        j=(i-600000)*1.5/100+33500;    
    }
    else
        j=(i-1000000)/100+39500;
    printf("%d",j);
    
}
红颜如霜 1年前 回复TA
@红颜如霜 case 5:{p=(i-600000)*0.015+(200000*0.03)+(200000*0.05)+(100000*0.075)+(100000*0.1);printf("%d",p);} break;         case 6:{p=(400000*0.015)+(200000*0.03)+(200000*0.05)+(100000*0.075)+(100000*0.1)+(i-1000000)*0.01;printf("%d",p);}      } 	return 0; }
红颜如霜 1年前 回复TA
#include<stdio.h>
int main()
{
    int x,i,p;
    scanf("%d",&i);
    if(i<=100000) x=1;
    if(i>100000&&i<=200000) x=2;
    if(i>200000&&i<=400000) x=3;
    if(i>400000&&i<=600000) x=4;
    if(i>600000&&i<=1000000) x=5;
    if(i>1000000) x=6;
    switch(x)
    {
        case 1:{p=i*0.1;printf("%d",p);} break;
        case 2:{p=100000*0.1+(i-100000)*0.075;printf("%d",p);} break;
        case 3:{p=100000*0.1+(100000*0.075)+(i-200000)*0.05;printf("%d",p);} break;
        case 4:{p=100000*0.1+(100000*0.075)+(200000*0.05)+(i-400000)*0.03;printf("%d",p);} break;
小熊ldc 1年前 回复TA
@随声附和 这样1000000不是错了吗。100000本来是case 0里面的,变到了case 1中去。
小熊ldc 1年前 回复TA
@随声附和 这样1000000不是错了吗。100000本来是case 0里面的,变到了case 1中去。
熊出没 1年前 回复TA
@熊出没 最后1%的写成0.1%的提成
熊出没 1年前 回复TA
#include <stdio.h>
int main()
{
    int i,y;
    scanf("%d",&i);
    if(i<=100000)y=0.1*i;
    else if(i<=200000&&i>100000)y=0.1*100000+(i-100000)*0.075;
    else if(i<=400000&&i>200000)y=0.1*100000+100000*0.075+(i-200000)*0.05;
    else if(i<=600000&&i>400000)y=0.1*100000+100000*0.075+200000*0.05+(i-400000)*0.03;
    else if(i<=1000000&&i>600000)y=0.1*100000+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
    else                        y=0.1*100000+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.001;
    printf("%d",y);
    return 0;
}
大佬救命,只有90分,问题在哪儿
uq_97609592763 1年前 回复TA
if(i<=100000){
        printf("%d",i*0.1);
    } else if(i>100000 && i<=200000){
        printf("%d",(100000*0.1)+(i-100000)*0.075);
    } else if(i>200000 &&  i<=400000){
        printf("%d",100000*0.1+100000*0.075+(i-200000)*0.05);
    } else if(i>400000 &&  i<=600000){
        printf("%d",100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03);
    } else if(i>600000 &&  i<=1000000){
        printf("%d",100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015);
    } else{
        printf("%d",100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0,015+(i-1000000)*这个为啥不对
十九 1年前 回复TA
@十九 看错了,最后一个是4e5*0.01
十九 1年前 回复TA
大佬们,为什么我用这么朴素的代码不行啊,纯小白。

#include<stdio.h>
int main()
{
    int I,J;
	scanf("%d",&I);
	if(I>0 && I<=1e5) J=I*10/100;
	if(I>1e5 && I<=2e5) J=1e5*10/100+(I-1e5)*7.5/100;
	if(I>2e5 && I<=4e5) J=1e5*(0.1+0.075)+(I-2e5)*0.05;
	if(I>4e5 && I<=6e5) J=1e5*(0.1+0.075)+2e5*0.05+(I-4e5)*0.03;
	if(I>6e5 && I<=1e6) J=1e5*(0.1+0.075)+2e5*(0.05+0.03)+(I-6e5)*0.015;
	if(I>1e6) J=1e5*(0.1+0.075)+2e5*(0.05+0.03)+4e5*0.01+(I-1e6)*0.01;
	printf("%d",J);
    return 0;
}