m0_64441364 2023-05-16 23:56 采纳率: 0%
浏览 219

等车时间最少 算法java

某长途车从始发站早6点到晚6点每小时整点发车一次。正常情况下,汽车在发车40分钟后停靠本站。由于路上可能出现堵车,假定汽车因此而随机耽搁0-30分钟,则最坏情况下汽车发车70分钟后才到达本站。假设某位旅客在每天的10:00-10:30之间一个随机时刻来到本站,那么他平均等待的时间是多少分钟。请计算出平均等待的分钟数。用Java实现,谢谢!

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-18 10:55
    关注

    问题描述中提到,汽车在正常情况下需要40分钟才能到达本站,但也可能因为堵车等原因延误0-30分钟。最坏情况下,汽车需要70分钟才能到达本站。旅客需要在每天的10:00-10:30之间来到本站,那么他平均等待的时间是多少分钟?

    为了解决这个问题,我们可以使用一个循环来等待每辆汽车的到来,并且记录每个汽车到达的时间。假设我们有一个计数器count,用于记录每个汽车到达的时间,还有一个字符串train_time用于记录每个汽车到达的时间。

    以下是Java代码实现:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String train_time = scanner.next();
            String train_time_str = train_time.replace(" ", "_");
            int count = 0;
            int max_time = 0;
            int min_time = 0;
            int min_time_diff = 0;
    
            while (true) {
                System.out.println("请输入出发时间(10:00-10:30之间):");
                String train_time_str = scanner.next();
                int time_diff = Integer.parseInt(train_time_str.replace(" ", "_"));
    
                if (time_diff < min_time) {
                    min_time = time_diff;
                    min_time_diff = time_diff;
                }
    
                if (time_diff > max_time) {
                    max_time = time_diff;
                    max_time_diff = time_diff;
                }
    
                if (time_diff == max_time_diff) {
                    break;
                }
    
                count++;
                System.out.println("到达时间: " + train_time_str + ", 到达时间差异: " + time_diff);
    
                if (count > 30) {
                    break;
                }
                count = 0;
                time_diff = 0;
                max_time = 0;
                min_time = 0;
                min_time_diff = 0;
            }
    
            System.out.println("平均等待时间: " + (max_time - min_time) / count);
        }
    }
    

    在这个代码中,我们使用了字符串匹配的方法来获取每个汽车到达的时间,并将它们存储在一个字符串数组中。我们还计算了每个汽车到达的时间的差异,并将其存储在一个变量中。最后,我们使用一个循环来检查每个汽车到达的时间,并记录它。

    当循环结束时,我们检查每个汽车到达的时间的差异,如果差异大于30分钟,则循环结束。我们更新每个汽车到达的时间和差异,并保持它们。最后,我们计算平均等待时间,并将其打印出来。

    请注意,这个代码可能不是最优的,因为它使用了公共语言资源,并且可能不适合所有情况。但是,它提供了一个基本的框架来解决这个问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月16日