JDOJ 1133: 分段公司利润
Description
企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;
200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;
400000<I≤600000元时,高于400000元的部分按3%提成;600000<I≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
Input
一个整数,当月利润。
Output
一个整数,奖金。
Sample Input
900
Sample Output
90
HINT
用Switch要比用if的看起来更清晰。
题解:
程序设计语法基础题。
听HINT的,用switch来判断。
因为是基础题,所以来baba几句switch的用法。
我直接来用代码说明。
switch后面的括号是判断条件。
然后就是下面的分支。
case * 就是假如括号里的判断条件是...
假如啥也不是用default代替。
注意最后加break;要不然你试试(一定要试试)
啥也不说了。
代码:
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
int a,w;
scanf("%d",&a);
switch(a/100000)
{
case 0: w = a * 0.1;break;
case 1: w = 10000 + (a-100000)*0.075;break;
case 2: w = 10000 + 7500 + (a-200000)*0.05;break;
case 3: w = 10000 + 7500 + (a-200000)*0.05;break;
case 4: w = 10000 + 7500 + 10000 + (a-400000)*0.03;break;
case 5: w = 10000 + 7500 + 10000 + (a-400000)*0.03;break;
case 6: w = 10000 + 7500 + 10000 + 6000 + (a-600000)*0.015;break;
case 7: w = 10000 + 7500 + 10000 + 6000 + (a-600000)*0.015;break;
case 8: w = 10000 + 7500 + 10000 + 6000 + (a-600000)*0.015;break;
case 9: w = 10000 + 7500 + 10000 + 6000 + (a-600000)*0.015;break;
case 10: w = 10000 + 7500 + 10000 + 6000 + 6000 +(a-1000000)*0.01;break;
default : w = 10000 + 7500 + 10000 + 6000 + 6000 +(a-1000000)*0.01;break;
}
printf("%d",w);
return 0;
}