python123456

一个球从100米的高度自由落下,每次落地后弹回原高度的一半,在落下,求小球在第10次落地时共经过多少米


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次的距离,∴需要减去前一个来回的高度


img

示例代码如下
有帮助望采纳~

height = 100  # 起始高度
total = 0  # 总距离
round = 0  # 落地次数
round += 1  # 第一次落地
total += height  # 只有下落
height /= 2  # 落地后高度减半
while(round <= 10):  # 第10次落地前
    total += height*2  # 弹起来在落下
    round += 1  # 落地次数累加
    height /= 2  # 高度减半
print(total)  # 输出

你题目的解答代码如下:

sum = 0 #总距离
hight = 100.0 #起始高度
sum = hight #第一次只有下落
for i in range(1,10): #计算剩下9次弹起来又下落
    print(f"第{i}次落地:经过{sum}米, 高度{hight}")
    hight /= 2     #高度减半
    sum += hight * 2  #累加弹起来又下落的距离
print(f"10次落地共经过{sum}米");

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img