//一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,
//如此往复,计算从小球H 高度下落到第n 次弹地往返的总路程。
#include<stdio.h>
int main() {
int m;
scanf("%d", &m);
for (int i = 1; i <= m; i++) {
int k;
double sum, H;
scanf("%lf%d", &H, &k); //输入高度和落地次数
sum = H;
k--; //第一次落地
while (k > 0) {
H = H / 2; //球的高度减半
sum = sum + H * 2; //每次反弹路径:往+返
k--; //落地次数-1
}
printf("%.2lf\n", sum);
}
return 0;
}



京公网安备 11010502036488号