M0005 分段计价

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了M0005 分段计价相关的知识,希望对你有一定的参考价值。

问题描述:
某城市出租车收费标准规定如下:
4千米以内(含4千米)按起步价收费10元,超过4千米至25千米按每千米2元收费,超过25千米的部分每千米按3元收费。距离不足1千米(1km)按1千米计算。

输入行驶路程,计算付费金额。路程有可能是带小数点的数。

输入:
若干个小数,表示行驶里程数即千米数。(0<x<=500)

输出:
对于每个行驶里程,输出一行整数的付费金额。

样例输入:
3
4.9
30

样例输出
10
12
67

问题分析:
分段计价是常见的问题。明确分段计算函数关系是第一步。
有了分段计算函数,用嵌套条件语句来实现是常见的做法。然而,还有更为通用的程序来解这个问题。
这里需要用到数学函数库中函数ceil()来实现向上取整。函数floor()用于向下取整,函数round()用于四舍五入。
OJ做题,对于数学上的实数,程序中通常用double类型的浮点数来表示,而不用float来表示。

解题C语言程序如下:

/* M0005 分段计价 */

#include <stdio.h>
#include <math.h>

int main()

    double x;

    while (~scanf("%lf", &x)) 
        int x1 = ceil(x), y;

        if (x1 <= 4) y = 10;
        else if (x1 <= 25)
            y = 10 + (x1 - 4) * 2;
        else
            y = 10 + (25 - 4) * 2 + (x1 - 25) * 3;

        printf("%d\\n", y);
    

    return 0;

以上是关于M0005 分段计价的主要内容,如果未能解决你的问题,请参考以下文章

PTA刷题——出租车计价

基于8086的出租车计价器系统设计仿真程序报告(资料转发)

基于8086的出租车计价器系统设计仿真程序报告(资料转发)

PTA练习题之7-1 出租车计价(15 分)

资源分享基于8086的出租车计价器系统设计(仿真程序报告)基于8086电压表系统仿真系统设计(仿真程序)

武汉地铁新线出现千余种“最短路径” 线网最高票价仅8元