注意: 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); } } }