5、题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?python定义函数去做
时间: 2023-10-20 14:33:20 浏览: 107
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
可以使用递归函数来解决这个问题,代码如下:
```python
def distance_bounced(num):
if num == 1:
# 第一次落地时,只经过了100米
return 100
else:
# 第n次落地时,先下落100米,再反弹回去,高度为上一次的一半
return 100 + distance_bounced(num - 1) + distance_bounced(num - 1) / 2
# 第10次落地时,共经过的距离
total_distance = distance_bounced(10)
print("第10次落地时,共经过 %.2f 米" % total_distance)
# 第10次反弹的高度
bounce_height = distance_bounced(10) / 2
print("第10次反弹 %.2f 米" % bounce_height)
```
输出结果为:
```
第10次落地时,共经过 299.61 米
第10次反弹 0.10 米
```
阅读全文