本文共 1361 字,大约阅读时间需要 4 分钟。
本程序旨在模拟电梯在规定序列下完成所有楼层请求所需的总时间。通过分析输入的楼层请求序列,计算电梯上升和下降所需的时间,并输出总时间。
本程序使用C++语言编写,主要包括以下功能模块:
程序中,requests向量存储输入的楼层请求序列。通过遍历该向量,逐个处理每个请求,计算电梯从当前楼层到目标楼层所需的时间,并累加到总时间中。
具体逻辑如下:
(目标楼层 - 当前楼层) * 6。(当前楼层 - 目标楼层) * 4。6 * (目标楼层 - 当前楼层)4 * (当前楼层 - 目标楼层)总时间 + 上升时间 + 下降时间程序从标准输入读取楼层请求数目和具体序列。输出最终计算的总时间。
#include#include #include #include #include #include #include #include using namespace std; #define INF 0x7FFFFFFF vector requests; int main() { int num; while (scanf("%d", &num) != EOF) { requests.resize(num); int sum = 0; for (int i = 0; i < num; ++i) { int temp; scanf("%d", &temp); requests[i] = temp; } int nowStairs = 0; for (int i = 0; i < num; ++i) { if (requests[i] > nowStairs) { sum += (requests[i] - nowStairs) * 6; nowStairs = requests[i]; } else if (requests[i] < nowStairs) { sum += (nowStairs - requests[i]) * 4; nowStairs = requests[i]; } } printf("%d", sum + num * 5); } return 0; }
程序通过逐个处理每个楼层请求,计算电梯从当前楼层到目标楼层所需的时间,并累加到总时间中,最终输出总时间。
转载地址:http://nlqfk.baihongyu.com/