游客 Signup | Login
中文 | En

1693 - C语言程序设计教程(第三版)课后习题5.8

企业发放的奖金根据利润提成。利润低于或等于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

一个整数,奖金。

Examples

Input

900

Output

90

Hint

用Switch要比用if的看起来更清晰。

Solution C

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int a,b;
  scanf("%d",&a);
  b=a/100000;
  switch(b)
  {
     case 0:
          printf("%.f",a*0.1); break;
     case 1:      
          printf("%.f",(a-100000)*0.75+10000); break;
     case 2:
     case 3:
          printf("%.f",(a-200000)*0.5+10000+7500); break;
     case 4:
     case 5:
          printf("%.f",(a-400000)*0.03+10000+7500+10000);break;                
     case 6:
     case 7:
     case 8:
     case 9:
          printf("%.f",(a-600000)*0.015+10000+7500+10000+6000);break;
     default:
           printf("%.f",(a-1000000)+10000+7500+10000+6000+6000); break; 
               
  }

  return 0;
}

Solution C++

#include<iostream>
using namespace std;
int main()
{
	int i;
	double bonus,bon1,bon2,bon4,bon6,bon10;
	bon1=100000*0.1;
	bon2=bon1+100000*0.075;
	bon4=bon2+200000*0.05;
	bon6=bon4+200000*0.03;
	bon10=bon6+400000*0.015;
	cin>>i;
	if (i<100000) bonus=i*0.1;
	else if (i<=200000) bonus=bon1+(i-100000)*0.075;
	else if (i<=400000) bonus=bon2+(i-200000)*0.05;
	else if (i<=600000) bonus=bon4+(i-400000)*0.03;
	else if (i<=1000000) bonus=bon6+(i-600000)*0.015;
	else bonus=bon10+(i-1000000)*0.01;
	cout<<int(bonus)<<endl;
	return 0;
}

Hint

用Switch要比用if的看起来更清晰。

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题