1. 程式人生 > >想不出一個好的標題,就用這個吧

想不出一個好的標題,就用這個吧

問題描述:

某城市最高的樓只有一部電梯。該電梯和一般電梯不同的是它依照輸入樓層數的先後次序執行。電梯最初在0層。執行完一個輸入序列後就停止在該樓層,不返回0層。編寫程式計算電梯執行一個序列的時間。每次都假設電梯在0層開始,無論上一次執行到幾層。電梯每上1層需要6秒。每下1層需要4秒。如在某層停留,無論上下人多少,均停留5秒。輸入:第一個數N指示後面將有N個樓層的序列,樓層的值大於等於1,小於100。N=0表示結束輸入。輸出:每個序列電梯執行的時間。

#include<iostream>
using namespace std;
int main()
{
 int x[100],i,n,sum,k,up,down=0;
 cout<<"please enter the number of sequence:"<<endl;
 while(cin>>n)
 {
  if(n==0) return 0;//輸入'0'結束
  for(i=0;i<n;i++)//輸入的序列不能有重複值
  {
   cin>>x[i];
  }
   up=k=x[0];//將第一個樓層數作為初始值
    for(i=1;i<n;i++)
   {
       if(x[i]>k)
	   {
        up+=(x[i]-k);//電梯向上的層數
        k=x[i];
	   }
       else
	   {
        down+=(k-x[i]);//電梯向下的層數
        k=x[i];
	   }
   }  
  sum=up*6+down*4+n*5;//電梯執行的時間
  cout<<"電梯執行的時間為:"<<sum<<endl;
 }
return 0;
}


編譯執行結果如下: