问题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
#! /usr/bin/env python3 # -*- coding:utf-8 -*- # Author : Ma Yi # Blog : http://www.cnblogs.com/mayi0312/ # Date : 2020-06-19 # Name : demo020 # Software : PyCharm # Note : 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经 # 过多少米?第10次反弹多高? # 入口函数 if __name__ == '__main__': # 小球距地面的高度,初始时为100 height = 100 # 小球经过的距离,首次落地时经过的距离为100 dist = 100 print("小球第%d次落地时,共经过%d米" % (1, dist)) for i in range(2, 11): # 每次落地后反跳回原高度的一半 height /= 2 # 每次落地经过的距离为height*2 dist += height * 2 print("小球第%d次落地时,共经过%.2f米;第%d次反弹高度为%.2f" % (i, dist, i - 1, height))
运行结果:
小球第1次落地时,共经过100米 小球第2次落地时,共经过200.00米;第1次反弹高度为50.00 小球第3次落地时,共经过250.00米;第2次反弹高度为25.00 小球第4次落地时,共经过275.00米;第3次反弹高度为12.50 小球第5次落地时,共经过287.50米;第4次反弹高度为6.25 小球第6次落地时,共经过293.75米;第5次反弹高度为3.12 小球第7次落地时,共经过296.88米;第6次反弹高度为1.56 小球第8次落地时,共经过298.44米;第7次反弹高度为0.78 小球第9次落地时,共经过299.22米;第8次反弹高度为0.39 小球第10次落地时,共经过299.61米;第9次反弹高度为0.20