题目描述
某公司有个电梯,给定你含有 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;
}