出租车费
【问题描述】
某城市的出租车收费标准如下:
假设打车路程为 x 公里:
(1)起步价 9.0 元(不超过 3 公里,即:0<x<=3;);
(2)3 公里后:白天 1.5 元/公里;夜间 1.75 元/公里;
(3)6 公里后:白天 2.25 元/公里;夜间 2.5 元/公里。
如:白天打车路程 x=10 公里,费用计算方法如下:
前 3 公里起步价 9.0 元;3 公里到 6 公里费用 3* 1.5 ;6 公里后的费用
4*2.25,共计 22.5 元。
给出路程 x,请计算所需的车费。
【输入】
输入文件名为 taxi.in。
输入共一行,两个数,中间用空格隔开;
第一个数是整数,表示路程;
第二个数是整数,1 表示白天,0 表示夜间。
【输出】
输出文件名为 taxi.out。
输出共一行,一个数,表示所需的车费,保留两位小数。
【输入输出样例】
taxi.in | taxi.out |
---|---|
10 1 | 22.50 |
【数据范围】
对于 50%的数据: x<=10000;
对于 100%的数据: x<=1000000000。
题目解析
这是一道入门级题目,题目涉及分支结构。处理好路程与白天黑夜的关系即可解决。
代码如下:
#include<iostream>
using namespace std;
int main()
{
//重定向文件输入输出
freopen("taxi.in","r",stdin);
freopen("taxi.out","w",stdout);
int x,k;//x表示路程,k表示白天黑夜的状态
double fy=0;//fy表示整个路程中的费用
cin>>x>>k;
if(x<=3) {
fy=9;
}
else if(x<=6){
if(k==1){
//白天
fy=9+1.5*(x-3);
}
else{
//晚上
fy=9+1.75*(x-3);
}
}
else {
if(k==1){
//白天
fy=9+3*1.5+2.25*(x-6);
}
else{
//黑夜
fy=9+3*1.75+2.5*(x-6);
}
}
printf("%.2f",fy);//保留两位小数
return 0;
}