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)