题目粗心:
有一部电梯,最开始停在第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;}