aqnu2074出租车计费 水题

阅读: 评论:0

aqnu2074出租车计费 水题

aqnu2074出租车计费 水题

标签:暴力
思路:A了好几次,一直部分过,最后加了3公里之内的判断A

问题描述

我们经常乘坐出租车,出租车的计费是一个很有趣的问题。在某市,出租车起步价是3公里之内(包括3公里)8元;超过3公里后,15公里之内(包括15公里)每500米计费1元;超过15公里之后,每300米计费1元。所以,乘坐出租车行驶的里程越远,花费就会越多。例如,行驶30公里时,就需付费82元。但是有经验的老手告诉我们,若从中途下车再打一辆车(相当于在中途结一次账),就能少花一些钱。
请编程验证老手的话,求出在行驶多少米时结一次账是最便宜的(如有多个解取最少的米数),并输出在此情况下所需支付的钱数。

输入描述

一个正整数n(n<=30),表示总里程数,单位为公里。

输出描述

第一行一个正整数,表示中途结账地点距离起点的路程,单位为米。
第二行一个正整数,表示最少付费值,单位为元,不计小数。

样例输入

30

样例输出

14401
63
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{int x,y,s;scanf("%d",&x);y=x*1000;int flag,pri;double mi=1000,m,f;if(y>=3000){for(int i=3000; i<=y; i++){int u=y-i;
//        printf("u==%d",u);m=0.0;if(i<=3000){m=m+8;}else if(i<=15000&&i>3000){m=m+8+(i-3000)/500;}else{m=m+32+(i-15000)/300;}if(u==0){m=m;}else if(u<=3000){m=m+8;}else if(u<=15000&&u>=3000){m=m+8+(u-3000)/500;}else{m=m+32+(u-15000)/300;}if(mi>m){mi=m;flag=i;}}pri=(int)(mi);printf("%dn%dn",flag,pri);}else{printf("%dn8n",y);}return 0;
}

本文发布于:2024-02-05 00:56:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170720411661588.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:出租车   水题
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23