Python习题集:程序20
2026/5/22 19:59:55 网站建设 项目流程

程序20


题目:一球从100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

代码 :

def calculate_faller(height, n): """计算初始高度为height时,落体第n次落地时的总行程、及第n次反弹(后)高度""" height_n = height #初始化第n次落地时的高度,此时为第0次落地时(落地前)的高度,经过1次for循环后height_n为第一次... sum_n = 0 #经历的总长度 for i in range(n): sum_n += height_n * 2 height_n = height_n / 2 sum_n = sum_n - height return sum_n, height_n if __name__ == '__main__': height = 100 #设置初始高度 n = 10 #设置落地次数 result = calculate_faller(height, n) print(f"第{n}次落地时,共经历{result[0]}米,第{n}次反弹{result[1]}米高。")

成果:

第10次落地时,共经历299.609375米,第10次反弹0.09765625米高。

后记:

1.算法注意:for循环里,要先计算反弹前的总行程,再计算第n次反弹(后)高度。
2.初始行程多算一遍初始高度,for循环后要减去。
3.返回的2个值,实际上是2个值的元组,按元组使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询