【C++】出租车计价

本文详细描述了计算出租车费用的程序,包括起步价、不同里程段的费用计算规则和停车费用处理,以及给定输入的样例输出解析。
摘要由CSDN通过智能技术生成

题目概述

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

起步里程为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;
}

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值