题目粗心:

有一部电梯,最开始停在第0层,上一层楼须要6s,下二层楼须要4s, 每次达到以后目标楼层还须要停留5s。现给出电梯要去的楼层的程序,求总共须要破费多少工夫(最初不须要回到第0层)。

算法思路:

应用beginFloor记录以后电梯所在的地位,nextFloor记录下一次要去的地位,没输出一个nextFloor,如果大于beginFloor就代表上楼,让seconds累计上楼工夫6*(nextFloor-beginFloor),否则就是下楼,累计下楼工夫4*(beginFloor-nextFloor),而后得记录停留5秒的工夫,更新此时电梯所在的地位。在输出完结的时候就能够输入数据。

提交后果:

AC代码:

#include <cstdio>using namespace std;int main(){    int N;    scanf("%d",&N);    int beginFloor = 0;//以后电梯所在的地位    int nextFloor;    int seconds = 0;//所破费的工夫    for (int i = 0; i < N; ++i) {        scanf("%d",&nextFloor);        if(nextFloor>beginFloor){            // 上楼            seconds += 6*(nextFloor-beginFloor);        } else {            //下楼            seconds += 4*(beginFloor-nextFloor);        }        // 停留5秒        seconds += 5;        // 更新电梯地位        beginFloor = nextFloor;    }    printf("%d",seconds);    return 0;}