描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)
示例1
输入:
100 1
输出:
100.0 50.0
示例2
输入:
100 3
输出:
250.0 12.5
分析:
掌握公式和fixed函数,此题迎刃而解。
代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double h;
int n;
cin >> h;
cin >> n;
double sum = 0;
for (int i = 0; i < n; i++) {
sum += h;
if (i > 0) sum += h;
h /= 2.0;
}
cout << fixed << setprecision(1) << sum << " " << setprecision(1) << h << endl;
return 0;
}