054-小球反弹的总路程

编程题:一个球从100m高度自由落下,每次落地后反跳回原来高度的一般,再落下.求第10次落地时,共经过多少米?第10次反弹的高度。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 12 20:26:31 2019

@author: zangz
"""

def distance(H,k):
    if not(H and k): #任意一个出现0的情况
        return 0,0
    h = H/2 #初始化反弹高度
    S = H  #初始化总距离
    if k == 1:
        return S,h
    else:
        for i in range(k-1):          
            S=S+2*h
            h = h/2
        return S,h

if __name__ == "__main__":
    print(distance(100,10))
1
(299.609375, 0.09765625)