1145 - C语言5.7

通过次数

0

提交次数

0

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

运输公司对用户计算运费。路程s越远,每吨×千米运费越低。标准如下:

s<250

没有折扣

250<=s<500

2%折扣

500<=s<1000

5%折扣

1000<=s<2000

8%折扣

2000<=s<3000

10%折扣

3000<=s

15%折扣

设每吨每千米货物的基本运费为p(price的缩写),货物重为w(weight的缩写),距离为s,折扣为d(discount的缩写),则总运费f(freight的缩写)的计算公式为:

f=p×w×s×(1-d)

现在给定p、w、s,计算总运费f。

题目输入

三个用空格隔开的数p、w、s,其中p和w是实数,s是整数。

题目输出

输出总运费。

请保留4位小数,注意行尾输出换行。

输入/输出样例

输入格式

100 20 300

输出格式

588000.0000

C语言解答

#include<stdio.h>
int main(){int s;
double p,w,f,d;
scanf("%lf %lf %d",&p,&w,&s);
if (s<250)
  d=0.0;
else if(s>=250 && s<500)
  d=0.02;
else if(s>=500 && s<1000)
  d=0.05;
else if(s>=1000 && s<2000)
  d=0.08;
else if(s>=2000 && s<3000)
  d=0.10;
else if(s>=3000)
  d=0.15;
f=p*w*s*(1-d);
printf("%.4lf\n",f);
return 0;}

C++解答

#include <stdio.h>
#include <math.h>
int main() {
	int c, s;
	float p, w, d, f;
	scanf("%f %f %d", &p, &w, &s);
	if (s >= 3000) c = 12;
	else c = s / 250;
	switch (c) {
		case 0: d = 0; break;
		case 1: d = 2; break;
		case 2:
		case 3: d = 5; break;
		case 4:
		case 5:
		case 6:
		case 7: d = 8; break;
		case 8:
		case 9:
		case 10:
		case 11: d = 10; break;
		case 12: d = 15; break;
	}
	f = p * w * s * (1 - d / 100.0);
	printf("%.4f\n", f);
	return 0;
}

Java解答

import java.util.*;
public class Main {
	public static void main(String args[]) {
		Scanner cin = new Scanner(System.in);
		double p,w,f,d;
		int s;
		p=cin.nextDouble();
		w=cin.nextDouble();
		s=cin.nextInt();
		if(s<250)
			d=0;
		else if(s<500)
			d=0.02;
		else if(s<1000)
			d=0.05;
		else if(s<2000)
			d=0.08;
		else if(s<3000)
			d=0.1;
		else
			d=0.15;
		f=p*w*s*(1-d);
		System.out.printf("%.4f\n",f);
	}
}

Python解答

p,w,s = [float(x) for x in raw_input().split()]
if s<250:
  d = 0
elif 250<=s<500:
  d = .02
elif 500<=s<1000:
  d = .05
elif 1000<=s<2000:
  d = .08
elif 2000<=s<3000:
  d = .1
elif 3000<=s:
  d = .15
print "%.4f" %(p*w*s*(1-d))