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;
}
posted @ 2019-01-17 11:40  Intro1997  阅读(161)  评论(0编辑  收藏  举报