1006 电梯时间问题 ACID 00733616

来源:互联网 发布:云计算虚拟化视频监控 编辑:程序博客网 时间:2024/06/11 03:34
简单题意:


      最高的建筑在我们城市只有一个电梯。请求列表是由N个正数。的数字表示楼层电梯将停止,在指定的顺序。花费6秒移动电梯一层,4秒移动到下一层。电梯将在每一站停留5秒。对于一个给定的请求列表,你计算总时间完成名单上的请求。电梯在第0个楼一开始并没有返回一楼当请求被实现。求所需时间。

思路形成:

     这道题目比较简单,只要将电梯上下次数计算出来乘以特有时间,在加上停留时间就可以了。

代码如下:

#include<iostream>
using namespace std;
int main()
{
 int x[1000],k,i,num,sum,h,n;
 while(cin>>n&&n)
 {
  for(i=1;i<=n;i++)
  {
   cin>>x[i];
  }
  k=x[1];
  num=k;
  sum=0;
  if(n>=2)
  {
      for(i=2;i<=n;i++)
   {
       if(x[i]>k)
    {
        num+=(x[i]-k);//计算电梯向上的层数
        k=x[i];
    }
       else
         if(x[i]<k)
     {
          sum+=(k-x[i]);//计算电梯下降的层数
         k=x[i];
     }
   }
  }
  h=num*6+sum*4+n*5;//输出最后的时间
  cout<<h<<endl;
 }
}

感想:对于此类问题只要将次数计算对就OK了。

0 0
原创粉丝点击