zzuli:1121电梯

这是一个关于计算电梯根据给定楼层需求运行所需总时间的问题。输入包括停留次数和各楼层需求,电梯从0层开始,不返回0层。程序通过判断楼层变化来计算上升、下降和停留时间,最终得出总时间。示例给出了一个3次停留的需求,电梯从0层到2层再到3层然后下降到1层,总共用时41秒。

题目描述

在某一高层建筑内只有一部电梯,当你按下一个数时,电梯会运行到那一层。已知电梯每上升一层需6秒,下降一层需4秒,在需要停留的那层停留5秒。现有N个整数组成的一个需求列表,电梯将依次响应,电梯从0层开始运行,而在运行过程结束之前不会返回0层。
注意,若出现相邻两个整数相等,代表在同一层执行了两个不同任务,可以理解为:电梯已经停了5秒,正要关门时又有人在同一层按开门键,电梯又开门并停留5秒。

输入

输入分两行,第一行是一个正整数N(N<=1000),代表停留几次,第二行的N个数字代表这几次依次停留的楼层。

输出

输出电梯完成该任务序列所需的时间,单独占一行。

样例输入 Copy

3 
2 3 1

样例输出 Copy

41

提示

电梯从0层上升到2层运行时间为12秒,停留5秒,再上升第三层,运行时间6秒,停留5秒,再下降到第一层,运行时间8秒,停留5秒。共41秒。

#include <stdio.h>
int time(int N,int a[]);
int main()
{
	int y,i,j,N;
	int a[1000];
	scanf("%d",&N);
	for(i=1;i<=N;i++)
	{
		scanf("%d",&a[i]);
	}
	y=time(N,a);
	printf("%d",y+N*5);
	return 0;
}

 int time(int N,int a[])
{
	int t=0,i,s=0,sum=0;
	a[0]=0;
	for(i=1;i<=N;i++)
	{
		s=a[i]-a[i-1];
		if(s>0)
		{
			t=s*6;
		}
		else if(s<0)
		{
			t=(-1)*s*4;
		}
		else
		{
			t=0;
		}
		sum=sum+t;
	}
	return sum;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值