问题:一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,如此往复,计算从小球H高度下落到第n次弹地往返的总路程。
Input
输入第一行为样例数m,接下来m行每行两个整数H和n,n不超过5。
Output
输出m行,表示所求总路程,结果保留小数点后两位。
输入输出例:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int m;
cin >> m;
for (int i = 0;i < m;i++)
{
int H, n;
cin >> H >> n;
float ALL = H;
float h = (float)H;
cout << fixed << setprecision(2);
for (int j = 1;j < n;j++)
{
ALL = ALL + h;
h = h / 2;
}
cout << ALL << endl;
}
return 0;
}