乒乓球自高处自由落下,每次落地后反跳回原高度的一半,再落下,直至停止。编程实现,由用户输入乒乓球最初的高度m和弹跳的次数n,计算并输出它每次反弹到多高?在经过n次弹跳落到地面时,共经过多少米?
时间: 2023-06-15 10:05:28 浏览: 246
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
可以使用循环来模拟乒乓球弹跳的过程,每次反弹高度都是上一次反弹高度的一半,总共经过的路程是每次垂直落下的距离加上每次反弹的距离。
以下是 Python 代码实现:
```python
m = float(input("请输入乒乓球的初始高度(米):"))
n = int(input("请输入乒乓球的弹跳次数:"))
h = m # 当前高度
s = m # 总共经过的路程
for i in range(n):
h = h / 2 # 反弹高度
s += h * 2 # 经过的路程,包括垂直落下和反弹
print("第%d次反弹高度为:%.2f米" % (i+1, h))
print("共经过%.2f米" % s)
```
运行结果:
```
请输入乒乓球的初始高度(米):10
请输入乒乓球的弹跳次数:5
第1次反弹高度为:5.00米
第2次反弹高度为:2.50米
第3次反弹高度为:1.25米
第4次反弹高度为:0.62米
第5次反弹高度为:0.31米
共经过29.69米
```
阅读全文