题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 要求:使用递归算法
时间: 2023-06-02 19:05:21 浏览: 106
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
这是一道物理问题,我可以为您计算。
第10次落地时,共经过的距离是 299.609375 米,第10次反弹的高度是 0.09765625 米。
以下是递归算法实现:
```python
def total_distance(height, times):
if times == 1: # 最后一次落地
return height * 2
else:
return height * 2 + total_distance(height / 2, times - 1)
def rebound_height(height, times):
if times == 1: # 最后一次落地
return height / 2
else:
return rebound_height(height / 2, times - 1)
height = 100
times = 10
print("第10次落地时,共经过的距离为:", total_distance(height, times))
print("第10次反弹的高度为:", rebound_height(height, times))
```
阅读全文