PAT甲级题目1008 Elevator

题目大意:
上一层电梯花费6秒,下一层电梯花费4秒,在任意层等待花费5秒

输入:
一行停留层数的序列

输出:
总花费时间

思路:
number数组用来存放序列
①初始在零层,先算出到达序列第一个值的层数的时间number[0]乘6
②从第一个值开始,依次往后比较
若下一个元素值比前一个元素值大,电梯往上走,总时间加上差值乘6
若下一个元素值比前一个元素值小,电梯往下走,总时间加上差值乘4
③最后加上每一次层的停留时间n乘5

代码:

#include
int number[105];
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&number[i]);
	}
	int sum=n*5;
	sum+=(number[0]*6);
	for(int i=1;i<n;i++)
	{
		if(number[i]>number[i-1])
		{
			sum+=6*(number[i]-number[i-1]);
		}
		else
		{
			sum+=4*(number[i-1]-number[i]);
		}
	}
	printf("%d",sum);
} 

你可能感兴趣的:(PAT甲级题目,数据结构,算法,PAT,真题)