如题:
一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹.求它在第N次落地时共经过多少米?
输入 :反弹的次数N
输出:小球经过的路程(保留四位小数)
样例输入:2
样例输出:200.0000
分析:取小球落地和弹起到最高处为一个回合,算出每个回合的路程,在输出时记得减去弹起后的高度,得到最终路程。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int N;
double s = 0, height = 100;
cin >> N;
for (int i = 1;i <= N;i++)
{
s += height;
height /= 2;
s += height;
}
double total_s = s - height;
cout << fixed << setprecision(4) << total_s;
return 0;
}