2933:停车场收费
总时间限制: 1000ms 内存限制: 65536kB
描述
一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。(注意输出结果小数点后保留两位)
输入
输入停车的时间
输出
输出应该收取的停车费用
样例输入
2
3
3.46
样例输出
5.00
5.00
5.92
问题链接:Bailian2933 停车场收费
问题简述:(略)
问题分析:常见的分段计算问题。需要注意输入输出和计算类型,一般而言,在OJ上做题,输入和计算类型用double,输出时按float格式输出,这也许是因为测试数据是按照这样来做的。
程序说明:同时给出C++语言和C语言的2种题解程序。
参考链接:(略)
题记:把计算逻辑跟输出处理分开,是一种好的做法。
AC的C++语言程序如下:
/* Bailian2933 停车场收费 */
#include <bits/stdc++.h>
using namespace std;
int main()
{
double time, ans;
while(~scanf("%lf", &time)) {
if(time <= 3) ans = 5.0;
else {
ans = 5 + (time - 3) * 2;
if(ans > 40) ans = 40.0;
}
printf("%.2f\n", ans);
}
return 0;
}
AC的C语言程序如下:
/* Bailian2933 停车场收费 */
#include <stdio.h>
int main()
{
double time, ans;
while(~scanf("%lf", &time)) {
if(time <= 3) ans = 5.0;
else {
ans = 5 + (time - 3) * 2;
if(ans > 40) ans = 40.0;
}
printf("%.2f\n", ans);
}
return 0;
}