PAT 甲级测试题目 -- 1008 Elevator

题目链接

题目描述

  某公司有个电梯,给定你含有 N 个整数的列表,列表中的数表示电梯将在哪个楼层停靠。电梯向上移动一层需要 6 秒,向下移动一层需要 4 秒,每到一层需要停留 5 秒。求电梯运行完整个列表需要的时间。

分析

  本题没有太大的难点,注意一下输入楼层都相同的情况,需要叠加停留时间即可(例如输入:3 0 0 0,则输出 15)

测试用例

输入数据:
3 2 3 1
输出数据:
41

输入数据:
3 0 0 0
输出数据:
15

实现

#include<iostream>
using namespace std;

int main() {
    int ListNumber;
    int layer;
    int AllTime = 0;
    int ContinueTime = 5;
    int difference, before = 0; 
    cin >> ListNumber;
    while (ListNumber--) {
        cin >> layer;
        difference = layer - before;
        before = layer;
        if (AllTime == 0) {
            AllTime += difference * 6 + ContinueTime;
            continue;
        }
        if (difference > 0) {
            AllTime += difference * 6 + ContinueTime;
        }           
        else if(difference < 0){
            AllTime += difference * (-4) + ContinueTime;
        }   
        else {
            AllTime += 5;
        }       
    }   
    cout << AllTime;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/Breathmint/p/10281401.html