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) |