本文主要是介绍18048 自由落体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
### 思路
1. 初始化总距离为0,初始高度为100米。
2. 使用循环计算第 `n` 次落地时的总距离和弹起高度:
- 每次落地增加当前高度到总距离。
- 每次弹起增加当前高度的一半到总距离,并更新当前高度为其一半。
3. 输出总距离和第 `n` 次弹起的高度,保留三位小数。
### 伪代码
1. 初始化 `total_distance = 0.0`,`height = 100.0`
2. 循环 `n` 次:
- `total_distance += height` // 落地
- `height /= 2` // 弹起高度
- `total_distance += height` // 弹起
3. 输出 `total_distance` 和 `height`,保留三位小数
### C++代码
#include <iostream>
#include <iomanip>int main() {int n;std::cin >> n;double total_distance = 0.0;double height = 100.0;for (int i = 0; i < n; ++i) {total_distance += height; // 落地height /= 2; // 弹起高度total_distance += height; // 弹起}// 第 n 次落地时不再弹起,所以减去最后一次弹起的高度total_distance -= height;std::cout << std::fixed << std::setprecision(3) << total_distance << " " << height << std::endl;return 0;
}
这篇关于18048 自由落体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!