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