Robin和Lily非常喜欢开车,他们经常讨论谁开的更好更快。现在有一条公路,起点
是0公里,终点是100公里。这条公路被划分为N段,每一段有不同的限速。现在他们从A公里处开始,到B公里处结束。请帮他们计算在不超过限速的情况下,最少需要多少时间完成这段路程。
输入:
1、第一行为公路划分的段数N
2、接下来N行,每行三个正整数,分别是起始点,终止点(前后两段一定保证是连续的),
和限速值(单位:公里/小时)
3、紧接是要计算的起始点A,和终止点B
输出:
1、输出为一行,即从A到B需要的最少时间(单位:小时),精确到小数点后两位
Sample Input:
4
0 30 10
30 40 20
40 80 20
80 100 5
20 60
Sample Output:
2.50
java面试题目面试题目
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答
- 当作看不见 2016-09-12 13:52关注
直接上代码了,自己看一下吧
import java.util.Scanner; import java.util.*; public class test { static float time=0; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int N =Integer.parseInt((String)sc.nextLine())+1; String[] str=new String[N]; String[] str1; for(int i=0;;i++){ str[i]= (String) sc.nextLine(); str1=str[i].split(" "); if(str1.length==2){ break; } } String str2=str[str.length-1]; int begin=Integer.parseInt(str2.split(" ")[0]); int end =Integer.parseInt(str2.split(" ")[1]); System.out.println(end+" "+begin); check(str, begin, end); } public static void check(String[] str,int begin,int end){ float f,f1,speed; String str1; for(int i=0;i<str.length;i++){ str1=str[i]; f=Integer.parseInt(str1.split(" ")[0]); f1=Integer.parseInt(str1.split(" ")[1]); speed=Integer.parseInt(str1.split(" ")[2]); if(begin>f&&begin<f1&&end>f1){ time+=(f1-begin)/speed; } else if(end<=f1){ time+=(end-f)/speed; break; } else{ time+=(f1-f)/speed; } } System.out.print(time); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用
- ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决