酷代码 AI
菜单
服务商

题目描述 一球从 𝑀 米高度自由下落,每次落地后返回原高度的一半,再落下。  求它在第 𝑁 次落地时反弹多高?共经过多少米? 答案均保留两位小数。 输入 读入两个数整数分别表示球的初始高度 𝑀 [ 100 , 10000 ] 和弹跳次数 𝑁 [ 1 , 100 ] 。 输出 它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开 样例输入 复制 1000 5 样例输出 复制 31.25 2875.00

以下是使用 Python 实现的代码: ```python # 读取输入 M, N = map(int, input().split()) # 计算第 N 次落地时反弹的高度 bounce_height = M / (2 N) # 计算总共经过的路程 total_distance = M for i in range(1, N): total_distance += 2 * (M / (2 i)) # 输出结果,保留两位小数 print("{:.2f} {:.2f}".format(bounce_height, total_distance)) ``` 代码解释 1. 读取输入:使用 `map(int, input().split())` 读取两个整数 `M` 和 `N`,分别表示球的初始高度和弹跳次数。 2. 计算第 N 次落地时反弹的高度:根据题目描述,每次反弹高度是上一次高度的一半,所以第 `N` 次落地时反弹的高度为 `M / (2 N)`。 3. 计算总共经过的路程: - 第一次落地时,球经过的路程为 `M`。 - 从第二次落地开始,每次落地前球会先上升再下降,经过的路程是上一次反弹高度的两倍。使用 `for` 循环从 1 到 `N - 1` 计算每次反弹的路程,并累加到 `total_distance` 中。 4. 输出结果:使用 `"{:.2f} {:.2f}".format(bounce_height, total_distance)` 格式化输出结果,保留两位小数。 [2025-12-07 17:01:33 | AI问答 | 351点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多