描述
某城市最高的建築只有一部電梯。一份電梯升降任務表由N個正整陣列成,這些數字表示電梯按照給定的順序停留的樓層號。
電梯升一層花費6秒鐘,降一層花費4秒鐘,並且每次停留花費5秒鐘。
對於每一份任務表,你要計算出完成全部升降任務所花費的總時間。一開始,電梯在第0層,並且最終完成任務時電梯不必一定返回到0層。
輸入
輸入一個正整數N,接下來是N個正整數。
在輸入中,所有的數字都小於100。
輸出
輸出總時間。
輸入樣例 1
1 2
輸出樣例 1
17
輸入樣例 2
3 2 3 1
輸出樣例 2
41
先定義一個變數n,用來輸入要搭幾次電梯。然後寫一個for迴圈來迴圈輸入要去的樓層。
第一次從0層出發,所以肯定是往上,i==1時不判斷往上還是往下,直接用累加器s加上輸入的a*6。
這裡要注意每次迴圈的末尾要用b儲存這一次輸入的層數,下一次迴圈時用來做比較。
第二次以及以後就需要先判斷輸入的a比上一次的b大還是小,大則s+=(a-b)*6,小則s+=(b-a)*4。
程式碼:
1 #include<bits/stdc++.h> 2 #include<iomanip> 3 using namespace std; 4 int main() 5 { 6 int n,s=0,a,b; 7 cin>>n; 8 s+=n*5; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a; 12 if(i==1) 13 { 14 s+=a*6; 15 } 16 if(a>b&&i!=1) 17 { 18 s+=(a-b)*6; 19 } 20 if(a<b&&i!=1) 21 { 22 s+=(b-a)*4; 23 } 24 b=a; 25 } 26 cout<<s; 27 return 0; 28 }