H = 100 米。n 次反彈高度:H / 2^nH + 2 * H * (1/2 + 1/4 + ... + 1/2^(n-1)) = H * (2 - 1/2^(n-1))(第 n 次落地後)#include <stdio.h>
int main() {
double height = 100.0;
double total_distance = 0.0;
// 第 1 次下落
total_distance = height;
height /= 2.0; // 第 1 次反彈高度
// 第 2 到第 10 次反彈(每次反彈上升再下落)
for (int i = 2; i <= 10; ++i) {
total_distance += height * 2; // 上升 + 下落
height /= 2.0;
}
// 第 10 次反彈高度即為迴圈結束後的 height
printf("第 10 次反彈高度: %.10f 米\n", height);
printf("第 10 次落地後總路程: %.10f 米\n", total_distance);
return 0;
}
第 10 次反彈高度: 0.0976562500 米
第 10 次落地後總路程: 299.8046875000 米
注意:迴圈邊界條件需依題目定義「第 10 次高度」是指第 10 次反彈最高點,還是第 10 次落地瞬間。以上程式碼以反彈最高點為準。