一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?编写代码实现最后的计算结果。调用函数
时间: 2023-04-28 13:01:20 浏览: 81
答案100道Python编程题及答案(一).doc
这道题可以使用数学公式来解决。我们可以先计算出第一次落地时球经过的路程,即100米。然后,我们可以计算出第二次落地时球经过的路程,即100米加上反弹的高度,即50米。同理,我们可以计算出第三次、第四次、第五次……第十次落地时球经过的路程。最后,将这些路程相加,即可得到球在第十次落地时经过的总路程。
另外,我们还需要计算出球在第十次反弹时的高度。我们可以使用递推公式来计算球在每次反弹后的高度,即每次高度为上一次的一半。最后,我们可以得到球在第十次反弹时的高度。
以下是代码实现:
```python
def calculate_distance(height, times):
distance = height
for i in range(1, times):
distance += height * 2
height /= 2
return distance
def calculate_height(height, times):
for i in range(1, times):
height /= 2
return height
height = 100
times = 10
total_distance = calculate_distance(height, times)
print("球在第十次落地时,共经过 %.2f 米。" % total_distance)
final_height = calculate_height(height, times)
print("球在第十次反弹时,反弹高度为 %.2f 米。" % final_height)
```
输出结果为:
```
球在第十次落地时,共经过 299.61 米。
球在第十次反弹时,反弹高度为 .10 米。
```
阅读全文