【id:38】【20分】C. 奖金提成(选择)
题目描述
企业发放的奖金根据利润提成,如下规则
利润≤10000元时,奖金可提10%;
10000<利润≤20000时,低于10000元的部分按10%提成,高于10000元的部分,可提成 7.5%;
20000<利润≤40000时,低于20000元部分仍按上述办法提成,(下同),高于20000元的部分按5%提成;
40000<利润≤60000元时,高于40000元的部分按3%提成;
60000<利润≤100000时,高于60000元的部分按1.5%提成;
利润>100000时,超过100000元的部分按1%提成
注意奖金是整数,无小数
要求:用switch实现。
输入
第一行输入T表示有T个测试实例
第二行起,每行输入一个数据(正整数且小于10的10次方)表示利润,连续输入T行
输出
每行输出应得的奖金
这一题的难点在于“用switch实现”!!!
我们不可能一个一个case去把0到10万多的数全部写出来(必须想想有什么技巧)
因此我们可以发现在某一个区间内的数的第一个数字都是一样的
所以我们可以这样
case:这个数/10000;
如下
#include<stdio.h>
int main()
{
int i,t,j,y;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&j);
switch(j/10000)
{
case 0:y=j*0.1;break;
case 1:y=10000*0.1+(j-10000)*0.075;break;
case 2:case 3:y=1000+750+(j-20000)*0.05;break;
case 4:case 5:y=1000+750+1000+(j-40000)*0.03;break;
case 6:case 7:case 8:case 9:y=1000+750+1000+600+(j-60000)*0.015;break;
case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:
y=1000+750+1000+600+600+(j-100000)*0.01;break;
}
printf("%d\n",y);
}
return 0;
}