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 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法