题目概述
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1
2.6 2
输出样例1
10
输入样例2
5.1 4
输出样例2
14
输入样例3
12.5 9
输出样例3
34
解题思路:
1、先判断需不需交停车费,需要注意的是,每满5交2元,则需要看n中有多少个5,然后再乘以2,就是需要交的停车费用。
2、根据不同的历程情况予以计算即可。
3、需要注意的是:在样例3中,输出的应该是31而非34,题目所给测试案例为34.我在描述表达式的时候,一直怀疑是自己的计算表达式出错了,其实不然,将代码提交测试之后,是通过了所有的测试点的。
代码实现:
#include<iostream>
using namespace std;
int main()
{
double m;
int n;
cin>>m>>n;
double price;
if(n<5)
{
if(m>0&&m<=3)
{
price=10;
}
if(m>3&&m<=13)
{
price=(m-3)*2+10;
}
if(m>13)
{
price=(m-10)*3+7*2+10;
}
}
else{
if(m>0&&m<=3)
{
price=10+(n/5)*2;
}
if(m>3&&m<=13)
{
price=(m-3)*2+10+(n/5)*2;
}
if(m>13)
{
price=(m-10)*3+7*2+10+(n/5)*2;
}
}
printf("%.f",price);
return 0;
}