• [codeup]1128 Problem B出租车费


    题目描述

    某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。
    一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。
    例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。
    现在给你整个行程的公里数,请你计算坐出租车的最小花费。

    输入

    输入包含多组测试数据。每组输入一个正整数n(n<10000000),表示整个行程的公里数。
    当n=0时,输入结束。

    输出

    对于每组输入,输出最小花费。如果需要的话,保留一位小数。

    样例输入

    3
    9
    16
    0
    

    样例输出

    10
    20.4
    36

    AC代码

     1 #include <stdio.h>
     2 const double eps = 1e-6;
     3 int main()
     4 {
     5     int n;
     6     double sum = 0.0;
     7     while(scanf("%d",&n) != EOF)
     8     {
     9         sum = 0.0;
    10         if(n == 0)
    11         break;
    12         if(n <= 4)
    13         {
    14             sum    = 10.0;    
    15         }else
    16         if(n > 4&&n <= 8)
    17         {
    18             sum = 10 + 2 * (n - 4);
    19         }else
    20         if(n > 8)
    21         {
    22             while(n > 8)
    23             {
    24                 sum += 18 ;
    25                 n -= 8;
    26             }
    27             if(n <= 4)
    28             {
    29                 sum += 2.4 * n;
    30             }else
    31             {
    32                 sum += 10 + (n - 4) * 2;
    33             }
    34         }
    35         int temp = (int)sum;
    36         if(sum - temp < eps)
    37         {
    38             printf("%d
    ",temp);
    39         }else
    40         printf("%.1lf
    ",sum);
    41     }
    42     return 0;
    43 }

    反思:

    注意当输出整数时,浮点数判断大小的方法。

  • 相关阅读:
    天梯程序设计竞赛 L2-005. 集合相似度 STL
    Oulipo kmp
    剪花布条 kmp
    poj 1321 dfs
    蓝桥杯历届试题 打印十字图
    windows 10家庭版安装SQL Server 2014出现.net 3.5失败问题解决。
    使用分区助手转移windows 10系统出现黑屏boot manager报错问题。
    使用java AWT做一个增加按钮的简单菜单窗体
    R基本画图
    R的基础学习之数据结构
  • 原文地址:https://www.cnblogs.com/Ponytai1/p/12270053.html
Copyright © 2020-2023  润新知