题解 | #弹地小球#
弹地小球
https://www.nowcoder.com/practice/0e3301735881444d902834df9b13a74c
//一个小球,从高为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; }