m0_66461140 2022-08-31 15:40 采纳率: 100%
浏览 107
已结题

电梯上下问题的ACM算法(语言-java)

问题遇到的现象和发生背景

电梯

问题相关代码,请勿粘贴截图

java题目描述
在我们的城市最高的建筑只有一个电梯。电梯请求列表包括N个正数。该数字序列表示电梯将要到达的楼层顺序。电梯每上一层楼用时6秒,下一层楼用时4秒,停一次用时5秒。

对于给定的请求列表,请计算花费执行列表中的请求的总时间。电梯初始在第0层。

输入格式
输入数据有多组。每组输入数据包含一个正整数N和N个正整数(N和楼层值不会超过100),表示电梯要到达的楼层数量和楼层。当N=0时输入结束,此组数据不进行处理。

输出格式
对于每组输入数据,计算电梯完成请求列表需要的时间,每组输出占一行。
样例输入
1 2
3 2 3 1
0
样例输出
17
41

  • 写回答

3条回答 默认 最新

  • 燕少༒江湖 2022-08-31 16:12
    关注
    
    public static void main(String[] args) {
            elevator();
        }
    
        public static void elevator(){
            Scanner scanner = new Scanner(System.in);
    
            int n = scanner.nextInt();
            if(n < 0){
                System.out.println("请输入大于等于0的数字");
            }
            if(n == 0){
                System.out.println("此组数据不做处理");
            }
            System.out.println("请输入层数:");
            int[] m = new int[n];
            for(int i=0; i<n; i++){
                m[i] = scanner.nextInt();
            }
            int sum = 0;
            sum += 6 * m[0];
    
            for(int j = 0;j < n-1 ;j++){
                if(m[j] > m[j+1]){
                    sum += Math.abs(m[j] - m[j+1])*4;  //下降
                }else if(m[j] < m[j+1]){
                    sum += Math.abs(m[j] - m[j+1])*6;  //上升
                }
            }
            sum += n * 5;
            System.out.println(sum);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 8月31日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来