出租车费
来源:互联网 发布:pptv聚力网络电视下载 编辑:程序博客网 时间:2024/06/02 01:49
问题 E: 出租车费
时间限制: 1 Sec 内存限制: 32 MB提交: 43 解决: 17
[提交][状态][讨论版]
题目描述
某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。
一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。
例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。
现在给你整个行程的公里数,请你计算坐出租车的最小花费。
一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。
例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。
现在给你整个行程的公里数,请你计算坐出租车的最小花费。
输入
输入包含多组测试数据。每组输入一个正整数n(n<10000000),表示整个行程的公里数。
当n=0时,输入结束。
当n=0时,输入结束。
输出
对于每组输入,输出最小花费。如果需要的话,保留一位小数。
样例输入
39160
样例输出
1020.436
提示
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;int main() {double sum;int n;while(scanf("%d", &n),n) {sum=0;if(n>=8) {if(n%8==0) {printf("%d\n", n/8*18);continue;}if(n%8>5) {sum+=10;sum+=(n%8-4)*2;} else {sum+=(n%8)*2.4;}if(n/8>=1) {sum+=n/8*18;}if(sum-(int)sum>=0.1)printf("%0.1lf\n", sum);elseprintf("%d\n", (int)sum);} else {if(n%8>=5) {sum+=10;sum+=(n%8-4)*2;} else {sum+=10;}printf("%d\n", (int)sum);}}}
0 0
- 出租车费
- 出租车费
- 出租车费
- 出租车费
- 出租车费
- 出租车费
- SDJZUOJ 1128 出租车费
- SDJZU 出租车费
- SDJZU-出租车费
- SDJZU 出租车费
- SDJZ 出租车费
- 1128: 出租车费
- codeup 1128 出租车费
- 贪心问题 B: 出租车费
- 贪心入门——出租车费
- 湖北民族学院oj 1691(贪心) 之 出租车费
- if语句的运用:用C语言解决奖金发放和出租车费问题。
- 学车费用
- javascript常用的20个正则表达式
- NLP算法之一(朴素贝叶斯理论部分)
- centos 关于redis 集群配置安装
- 暴风魔镜SDK在Unity3D 5.6中的简单应用
- java备份sqlserver数据库
- 出租车费
- Linux shell 之 提取文件名和目录名的一些方法
- scrollTop、offsetTop、offsetHeight等相对位置介绍
- MATLAB画阿基米德螺旋线
- 时间复杂度和空间复杂度
- Java进阶(十三)servlet监听器
- 畅通工程再续
- 深入理解Objective C的ARC机制
- 线性表的链式表示和实现