初学python 求解这道题目的程序

【题13】让一个球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第 10 次落地时,共经过多少米?第 1010 次反弹多高?

问题分析:
一开始的100米先抛开。10次落地,但是在最后一次落地后就停止了,所以只有9个来回,每个来回等于上次的高度,比如第一个来回的高度就等于100(50*2)

dh = 100
h = 0 # 算是一个中间量,不过Python不需要用中间量,见下面的代码
course = 100 # 经过的米数
for i in range(1,11):
    h = dh/2
    course += dh
    dh = dh/2
print("小球共经过:{}米".format(course-2*dh))# 10个来回,但其实只有9次的距离,∴需要减去前一个来回的高度
print("小球在第10次反弹的时候高度为:{}米".format(dh))
dh = 100
course = 100
for i in range(1,11): # 改了下循环体
    course,dh = course+dh,dh/2
print("小球共经过:{}米".format(course-2*dh))
print("小球在第10次反弹的时候高度为:{}米".format(dh))

答案:

小球共经过:299.609375米
小球在第10次反弹的时候高度为:0.09765625米