python_test_35

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

# 方法1:

a = [100]  # 每个 反弹落地 过程经过的路程,第1次只有落地(100米)
h = 100  # 每个 反弹落地 过程,反弹的高度,第1次为100米
# print("第1次从%s米高落地,走过%s米,之后又反弹至%s米。" % (h, a[0], h / 2))
for i in range(2, 11):  # 第1次已初始化,再循环9次
    a.append(h)  # 先计算路程,再高度减半,因为一个 反弹落地为2个高度
    h = h / 2
    # print("第%s次从%s米高落地,共走过%s米,之后又反弹至:%s米。" % (i, h, sum(a), h / 2))

# 方法2:
a = 100  # 路程
count = []  # 次数


def hi(num):  # num 为高度
    if len(count) == 10:
        return num
    global a
    a = a + num
    num = num / 2
    count.append(0)
    return hi(num)

猜你喜欢

转载自blog.csdn.net/weixin_44786482/article/details/89928110