注意:
1.过早出发的肯定不会是结果,因为如果过早出发还被追上的话那速度肯定比原先的要慢。既然慢了那就不需要考虑了。
2.最后的答案如果是小数的话,那结果必须是大于或者等于这个小数的最小整数。因为如果是四舍五入的话,小于0.5去掉后的那个时间其实还没有到达目的地。
代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args)throws Exception{
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
int riders=cin.nextInt();
if(riders==0)break;
double minTime=10000000;
for(int i=0;i<riders;i++){
int speed=cin.nextInt();
int timeOff=cin.nextInt();
if(timeOff<0)continue;
if(minTime>Math.ceil(4.5*60*60/speed+timeOff))
minTime=Math.ceil(4.5*60*60/speed+timeOff);
}
System.out.println((int)minTime);
}
}
}
本文针对一个具体的程序设计问题进行了深入的解析,通过合理的数学建模和算法设计,给出了高效的求解方案。文章重点讨论了如何筛选有效数据并利用数学方法进行时间计算,最终通过Java实现了解题代码。
175

被折叠的 条评论
为什么被折叠?



