1150 - C语言5.12

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元(100000<I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5%;200000 <I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000<I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万的部分按1%提成。输入当月利润I,求应发放奖金总数。

题目输入

一个整数I代表月利润。

题目输出

输出奖金总数,并保留2位小数。

请注意行尾输出换行。

输入/输出样例

输入格式

234000

输出格式

19200.00

C语言解答

#include<stdio.h>
int main(){
int I;
double b;
scanf("%d",&I);
if(I<=100000)
  b=I*0.1;
if(I>100000&&I<=200000)
  b=100000*0.1+(I-100000)*0.075;
if(I>200000&&I<=400000)
  b=100000*0.1+100000*0.075+(I-200000)*0.05;
if(I>400000&&I<=600000)
  b=100000*0.1+100000*0.075+200000*0.05+(I-400000)*0.03;
if(I>600000&&I<=1000000)
  b=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015;
if(I>1000000)
  b=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(I-1000000)*0.01;
printf("%.2lf",b);
return 0;
}

C++解答

#include <stdio.h>
int main() {
	int i;
	float bonus, bon1, bon2, bon4, bon6, bon10;
	bon1 = 100000 * 0.1;			/*利润为10万元时的奖金*/
	bon2 = bon1 + 100000 * 0.075;	/*利润为20万元时的奖金*/
	bon4 = bon2 + 100000 * 0.05;	/*利润为40万元时的奖金*/
	bon6 = bon4 + 100000 * 0.03;	/*利润为60万元时的奖金*/
	bon10 = bon6 + 400000 * 0.015;	/*利润为100万元时的奖金*/
	scanf("%d", &i);
	if (i <= 100000)
		bonus = i * 0.1;						/*利润在10万元以内按0.1提成奖金*/
	else if (i <= 200000)
		bonus = bon1 + (i - 100000) * 0.075;	/*利润在10万至20万元时的奖金*/
	else if (i <= 400000)
		bonus = bon2 + (i - 200000) * 0.05;		/*利润在20万至40万元时的奖金*/
	else if (i <= 600000)
		bonus = bon4 + (i - 400000) * 0.03;		/*利润在40万元至60万元时的奖金*/
	else if (i <= 1000000)
		bonus = bon6 + (i - 600000) * 0.015;	/*利润在60万元至100万元时的奖金*/
	else
		bonus = bon10 + (i - 1000000) * 0.01;	/*利润在100万元以上时的奖金*/
	printf("%.2f\n",bonus);
	return 0;
}

Java解答

import java.text.DecimalFormat;
import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("0.00");
        int i;
        i = cin.nextInt();
        double b = 0;
        if(i <= 100000)
        {
            b += i*0.1;
        }
        else if(i > 100000 && i <= 200000)
        {
            b += 10000;
            b += (i-100000)*0.075;
        }
        else if(i > 200000 && i <= 400000)
        {
            b += 10000 + 7500;
            b += (i-200000)*0.05;
        }
        else if(i > 400000 && i <= 600000)
        {
            b += 17500 + 10000;
            b += (i - 400000)*0.03;
        }
        else if(i > 600000 && i <= 1000000)
        {
            b += 27500 + 6000;
            b += (i - 600000)*0.015;
        }
        else {
            b += 33500 + 6000;
            b += (i - 1000000)*0.01;
        }
        System.out.println(df.format(b));
    }
}

Python解答

x = input()
if x<=100000:
  ans= x*.1
elif 100000<x<=200000:
  ans= 100000*.1+(x-100000)*.075
elif 200000<x<=400000:
  ans= 100000*.1+100000*.075+(x-200000)*.05
elif 400000<x<=600000:
  ans= 100000*.1+100000*.075+200000*.05+(x-400000)*.03
elif 600000<x<=1000000:
  ans= 100000*.1+100000*.075+200000*.05+200000*.03+(x-600000)*.015
else:
  ans= 100000*.1+100000*.075+200000*.05+200000*.03+400000*.015+(x-1000000)*.01
print "%.2f" %ans