萌新的Python练习菜鸟100例(十八)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

题目:
一球从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]))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章