1145 - C语言5.7
时间限制 : 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))