酷代码 AI
菜单
服务商

C++ 实现小核桃侦探赶往案发现场最短时间计算

以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <iomanip> int main() { int l, d, v, g, r; // 输入总距离、出发点到红绿灯的距离、速度、绿灯持续时间、红灯持续时间 std::cin >> l >> d >> v >> g >> r; // 计算到达红绿灯所需的时间 double timeToTrafficLight = static_cast<double>(d) / v; // 计算在红绿灯处是否需要等待 double cycleTime = g + r; double remainder = fmod(timeToTrafficLight, cycleTime); double waitTime = 0; if (remainder >= g) { // 如果到达时是红灯,计算等待时间 waitTime = cycleTime - remainder; } // 计算从红绿灯到终点所需的时间 double timeFromTrafficLightToEnd = static_cast<double>(l - d) / v; // 计算总时间 double totalTime = timeToTrafficLight + waitTime + timeFromTrafficLightToEnd; // 输出结果,保留 8 位小数 std::cout << std::fixed << std::setprecision(8) << totalTime << std::endl; return 0; } ``` ### 代码解释: 1. **输入部分**:通过 `std::cin` 读取总距离 `l`、出发点到红绿灯的距离 `d`、速度 `v`、绿灯持续时间 `g` 和红灯持续时间 `r`。 2. **计算到达红绿灯所需的时间**:使用公式 `timeToTrafficLight = d / v` 计算小核桃到达红绿灯所需的时间。 3. **判断是否需要等待**:计算一个红绿灯周期的时间 `cycleTime = g + r`,并计算到达红绿灯时在当前周期内的剩余时间 `remainder`。如果 `remainder` 大于等于绿灯持续时间 `g`,说明到达时是红灯,需要计算等待时间 `waitTime`。 4. **计算从红绿灯到终点所需的时间**:使用公式 `timeFromTrafficLightToEnd = (l - d) / v` 计算从红绿灯到终点所需的时间。 5. **计算总时间**:总时间等于到达红绿灯的时间加上等待时间再加上从红绿灯到终点的时间。 6. **输出结果**:使用 `std::fixed` 和 `std::setprecision(8)` 确保输出结果保留 8 位小数。 ######[AI问答 | 585点数解答 | 2026-03-29 15:41:42]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]