酷代码 AI
菜单
服务商

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

以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> #include <iomanip> using namespace std; int main() { int l, d, v, g, r; // 输入总距离、出发点到红绿灯的距离、速度、绿灯持续时间、红灯持续时间 cin >> l >> d >> v >> g >> r; // 计算到达红绿灯所需的时间 double timeToTrafficLight = (double)d / v; // 计算到达红绿灯时,红绿灯循环的次数 int cycle = timeToTrafficLight / (g + r); // 计算到达红绿灯时,在当前循环内已经过去的时间 double timeInCurrentCycle = timeToTrafficLight - cycle * (g + r); double waitingTime = 0; // 如果到达时红灯已经亮起 if (timeInCurrentCycle > g) { // 计算需要等待的时间 waitingTime = (g + r) - timeInCurrentCycle; } // 计算到达终点所需的总时间 double totalTime = (double)l / v + waitingTime; // 输出结果,保留 8 位小数 cout << fixed << setprecision(8) << totalTime << endl; return 0; } ``` ### 代码解释: 1. **输入部分**:使用 `cin` 读取五个整数 `l`、`d`、`v`、`g`、`r`,分别代表总距离、出发点到红绿灯的距离、速度、绿灯持续时间、红灯持续时间。 2. **计算到达红绿灯的时间**:通过 `(double)d / v` 计算小核桃到达红绿灯所需的时间。 3. **计算红绿灯循环情况**:计算到达红绿灯时,红绿灯循环的次数 `cycle`,以及在当前循环内已经过去的时间 `timeInCurrentCycle`。 4. **计算等待时间**:如果 `timeInCurrentCycle` 大于绿灯持续时间 `g`,说明到达时红灯已经亮起,需要计算等待时间 `waitingTime`。 5. **计算总时间**:总时间等于到达终点的时间 `(double)l / v` 加上等待时间 `waitingTime`。 6. **输出结果**:使用 `fixed` 和 `setprecision(8)` 输出结果,保留 8 位小数。 ######[AI问答 | 557点数解答 | 2026-03-29 15:48:45]

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