面试题 求解 出租车收费规定如下:运行里程 收费标准<4km 10元4km<=运行里程<15km 1.2元/km运行里程>15km 1.6元/km 如何打车最省钱?说明 分析结果和理由 在显示生活中你会这样打车么?为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 题目表达不清楚,出租车收费规定如下:运行里程 收费标准<4km 10元4km<=运行里程<15km 1.2元/km运行里程>15km 1.6元/km =====================4公里以下都要收10元 这点明白而4km<=运行里程<15km 1.2元/km,让人误解,到底是,里程在4到15公里这一部分按1.2元/公里,还是只要总行程在这一段,则全部都按1.2元/km算?? 如 走了 走了 5 公里,是按 5 *1.2 = 6元算还是 10 + (5-1) *1.2 = 11.2元算? 我觉得这题的意思是 出租车行驶 i 公里,总费用为 charge , 平均每公里费用avg最少为最省钱写了一个小程序:如下==============public class Taxi{ public double charge(int a){ // a车量行驶的距离 double charge = 0; if(a<4) charge = 10; else if(a>=4 && a<15) charge = 10+(a-4)*(1.2); else if(a>=15) charge = 10 + 13.2 + (a-15)*(1.6); return charge; } public static void main(String args[]){ double avg = 0; Taxi t = new Taxi(); for(int i = 1;i<20;i++){ avg = t.charge(i)/i; System.out.println("行驶" + i + "公里平均费用为:" +avg); } } } 很明显,公司是要这样的答案:什么时候每一公里所对应的平均钱数最少?函数关系如下:p=10/x;(0<x<4)p=[1.2(x-4)+10]/x;(4<=x<15)p=[1.6(x-15)+23.2]/x;(x>=15)这个函数关系是个分段函数,需要求其最低点!!!!!!呵呵,楼主满意的话给个分哈~~ public class Taxi{public double charge(int a){ // a车量行驶的距离double charge = 0;if(a<4)charge = 10;else if(a>=4 && a<=15)charge = 10+(a-4)*(1.2);else if(a>=15)charge = 10 + 13.2 + (a-15)*(1.6);return charge;}public static void main(String args[]){double avg = 0;Taxi t = new Taxi();for(int i = 1;i<=15;i++){ min=0; avg = t.charge(i)/i; if(i=1) { min=avg; continue; } min=avg<min?avg:min } System.out.println("行驶" + i + "公里平均费用为:" +avg+"最划算");}} biggestfinger() 点问题我还不明白p=[1.2(x-4)+10]/x;(4<=x<15)x=4计算出总费用和x<4的时候都是一样的10块啊这里会不会有什么问题 很明显,公司是要这样的答案:什么时候每一公里所对应的平均钱数最少?函数关系如下:p=10/x;(0<x<4)p=[1.2(x-4)+10]/x;(4<=x<15)p=[1.6(x-15)+23.2]/x;(x>=15)这个函数关系是个分段函数,需要求其最低点!!!!!!呵呵,楼主满意的话给个分哈~~=============================================完全正确 kurtjob() biggestfinger() 点问题我还不明白p=[1.2(x-4)+10]/x;(4<=x<15)x=4计算出总费用和x<4的时候都是一样的10块啊这里会不会有什么问题==================因为函数是连续的,所以这一点是肯定相等的,没有问题的~~~! t<=4 price >= 2.5/h(最贵,但是不得不坐这一段)4<t<=15 price = 1.2/h(最便宜)t>15 price = 1.6/h=>一般就直接到终点得了小于15就不用说了,大于15分成两段甚至三段的话就要承受前面 2.5/h的高价格纯数学上考虑,后面的价格高点还有点意思;现在的话就是要找出个点,从这个分开来后便这一段的平均价格要低于1.6/h了 接上:因为在15公里的时候价格达到最低,也有1.5466667/h同时只有在大于等于13的时候价格才会不高于1.6/h所以,当总路程t 在15(n-1) + 13到 15n + 13 分成 n-1 次最划算,路程分别是:n-2个15, 一个是剩下的路程 这段代码中有点小问题..public class Taxi{public double charge(int a){ // a车量行驶的距离double charge = 0;if(a<4)charge = 10;else if(a>=4 && a<=15)charge = 10+(a-4)*(1.2);else if(a>=15)charge = 10 + 13.2 + (a-15)*(1.6);return charge;}public static void main(String args[]){double avg = 0;Taxi t = new Taxi();for(int i = 1;i<=15;i++){ min=0; //min应是int类型 avg = t.charge(i)/i; if(i=1) { min=avg; continue; } min=avg<min?avg:min } System.out.println("行驶" + i + "公里平均费用为:" +avg+"最划算");}} 写个方法,求对任意x公里的最省钱的方案比如说100公里直接打一个taxi肯定不划算,怎么打最划算?扩展到任意x公里 顿悟!什么"<=,>"都是没有意义的谢谢各位,结帐 如何获取上传到ftp服务端的文件大小 JSplitPane 相关问题 ,请高手赐教啊 关于Graphics类问题 如何用java实现对用户硬盘的监视 求“人事管理系统”代码 JFrame在整个jav编程中重要吗? RMI客户端怎么连不上服务器啊,好像是什么java.security.AccessControlException 关于rmi注册的问题。。。。。。。。。。。。。。。。。。 jlable 上面的文字怎么才能显示成两排 请问j2ee,j2se,j2me具体指什么玩意啊? 怎么打包? 关闭窗口事件的监视器接口是?
出租车收费规定如下:
运行里程 收费标准
<4km 10元
4km<=运行里程<15km 1.2元/km
运行里程>15km 1.6元/km
=====================
4公里以下都要收10元 这点明白
而4km<=运行里程<15km 1.2元/km,让人误解,到底是,里程在4到15公里这一部分按1.2元/公里,还是只要总行程在这一段,则全部都按1.2元/km算??
如 走了 走了 5 公里,是按 5 *1.2 = 6元算还是
10 + (5-1) *1.2 = 11.2元算?
写了一个小程序:如下==============
public class Taxi{
public double charge(int a){ // a车量行驶的距离
double charge = 0;
if(a<4)
charge = 10;
else if(a>=4 && a<15)
charge = 10+(a-4)*(1.2);
else if(a>=15)
charge = 10 + 13.2 + (a-15)*(1.6);
return charge;
}
public static void main(String args[]){
double avg = 0;
Taxi t = new Taxi();
for(int i = 1;i<20;i++){
avg = t.charge(i)/i;
System.out.println("行驶" + i + "公里平均费用为:" +avg);
}
}
}
什么时候每一公里所对应的平均钱数最少?
函数关系如下:
p=10/x;(0<x<4)
p=[1.2(x-4)+10]/x;(4<=x<15)
p=[1.6(x-15)+23.2]/x;(x>=15)
这个函数关系是个分段函数,需要求其最低点!!!!!!呵呵,楼主满意的话给个分哈~~
public double charge(int a){ // a车量行驶的距离
double charge = 0;
if(a<4)
charge = 10;
else if(a>=4 && a<=15)
charge = 10+(a-4)*(1.2);
else if(a>=15)
charge = 10 + 13.2 + (a-15)*(1.6);
return charge;
}
public static void main(String args[]){
double avg = 0;
Taxi t = new Taxi();
for(int i = 1;i<=15;i++){
min=0;
avg = t.charge(i)/i;
if(i=1)
{
min=avg;
continue;
}
min=avg<min?avg:min }
System.out.println("行驶" + i + "公里平均费用为:" +avg+"最划算");}}
p=[1.2(x-4)+10]/x;(4<=x<15)
x=4计算出总费用和x<4的时候都是一样的10块啊
这里会不会有什么问题
什么时候每一公里所对应的平均钱数最少?
函数关系如下:
p=10/x;(0<x<4)
p=[1.2(x-4)+10]/x;(4<=x<15)
p=[1.6(x-15)+23.2]/x;(x>=15)
这个函数关系是个分段函数,需要求其最低点!!!!!!呵呵,楼主满意的话给个分哈~~=============================================
完全正确
biggestfinger() 点问题我还不明白
p=[1.2(x-4)+10]/x;(4<=x<15)
x=4计算出总费用和x<4的时候都是一样的10块啊
这里会不会有什么问题
==================
因为函数是连续的,所以这一点是肯定相等的,没有问题的~~~!
4<t<=15 price = 1.2/h(最便宜)
t>15 price = 1.6/h=>
一般就直接到终点得了
小于15就不用说了,大于15分成两段甚至三段的话就要承受前面 2.5/h的高价格
纯数学上考虑,后面的价格高点还有点意思;现在的话就是要找出个点,从这个分开来后便这一段的平均价格要低于1.6/h了
因为在15公里的时候价格达到最低,也有1.5466667/h
同时只有在大于等于13的时候价格才会不高于1.6/h所以,当总路程t 在15(n-1) + 13到 15n + 13 分成 n-1 次最划算,路程分别是:
n-2个15, 一个是剩下的路程
public double charge(int a){ // a车量行驶的距离
double charge = 0;
if(a<4)
charge = 10;
else if(a>=4 && a<=15)
charge = 10+(a-4)*(1.2);
else if(a>=15)
charge = 10 + 13.2 + (a-15)*(1.6);
return charge;
}
public static void main(String args[]){
double avg = 0;
Taxi t = new Taxi();
for(int i = 1;i<=15;i++){
min=0; //min应是int类型
avg = t.charge(i)/i;
if(i=1)
{
min=avg;
continue;
}
min=avg<min?avg:min }
System.out.println("行驶" + i + "公里平均费用为:" +avg+"最划算");}}
比如说100公里直接打一个taxi肯定不划算,怎么打最划算?
扩展到任意x公里
什么"<=,>"都是没有意义的
谢谢各位,结帐