题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
分析:
· 用户输入层数和数字;
· 使用for i in range(n),循环创建的数列并添加到数列Sn[]里;
· 数字叠加后的值为Tn = Tn + n;
· 使用reduce将所有的数字求和,注意Python3里reduce不再是内建函数,需要导出functools使用
代码
tour = [] # 反弹总高度
height = [] # 每次反弹高度
hei = 100.00 # 起始高度
time = 10 # 次数
for i in range(2, time + 1):
# 第二次开始,落地时得距离应该是反弹高度*2
if i == 2:
tour.append(hei)
else:
tour.append(hei * 2)
hei /= 2
height.append(hei)
print("总高度:tour = {0}".format(sum(tour)))
print("第10次反弹高度:height = {0}".format(height[-1]))