文章目錄
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008 Elevator
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
1001
1002
1003
1004
1005
1006
1007
1008 Elevator
簡單的數學問題,注意三點:
- 要注意輸入數字序列的第一個數字是 n 而不是樓層。
- 實際情況下, 不僅要考慮到電梯的上升下降,還需要考慮繼續等待的情況。比如出現連續的兩個1,就表明需要在目前樓層多等待5秒。
- 到達輸入序列的最後一個樓層後依然要等待5秒,不要進行特判。
#include<cstdio>
using namespace std;
int main()
{
int n, total; // total 為總花費時間
int preFloor, newFloor; // preFloor 為目前樓層, newFloor 為要去的樓層
scanf("%d", &n);
total = preFloor = 0; // 初始化
while (n--)
{
scanf("%d", &newFloor); // 輸入要去的樓層
if (newFloor > preFloor) // 如果需要上升
{
total += (newFloor - preFloor) * 6 + 5;
}
else // 如果需要下降或者繼續等待
{
total += (preFloor - newFloor) * 4 + 5;
}
preFloor = newFloor; // 更新目前樓層的值
}
printf("%d\n", total);
return 0;
}
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
一定要自己寫一遍哦~~