关于#python#的问题:一个球从某个高度h米处落下,每次落地反弹回原来高度的一半

一个球从某个高度h米处落下,每次落地反弹回原来高度的一半,再落下。编写程序,求该球第10次落地时,共经历了多少米?第10次反弹的高度是多少米?
第七行那里要填什么啊谁能告诉我

img

sum+=h*2

循环里面不应该用 if else,而是既要加高度,又要将高度除2:

h=10
sum=0
for i in range(1, 11):
    sum += h
    h /= 2

第七行应该填写 sum += h,表示第一次落地的距离。在循环中,第二次到第十次落地的距离都是上一次落地距离的两倍,所以可以使用 sum += 2*h 来表示。

完整的代码如下:

h = int(input('落地的高度为:'))
sum = 0
for i in range(1, 11):
    if i == 1:
        sum += h
    else:
        sum += 2 * h
    h /= 2.
print('该球第10次落地时,共经过了' + str(sum) + '米')
print('第十次反弹的高度是:' + str(h))

输出结果为:

落地的高度为:100
该球第10次落地时,共经过了299.609375米
第十次反弹的高度是:0.09765625