标签:题目:一球从100米高度自由落下 每次落地后反跳回原高度的一半;再落下 求它在第10次落地时 共经过多少米?第10次反弹多高?
1 #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
代码:
2 3 h = 0 4 li = [] 5 for i in range(1,11): 6 s = 100/(2**(i-1)) 7 li.append(s) 8 9 for x in li: 10 h += x 11 print(li) 12 print(‘球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f‘%((h*2-100),li[-1]/2))
运行结果:
[root@HK code_100]# python code_20.py [100.0, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0.1953125] 球在第十次落地时,共经过了299.6093750000米,第10此反弹的高度是0.0976562500 [root@HK code_100]#
代码解释:
2 3 h = 0 #初始化总高度为0 4 li = [] #初始化每次落地的高度列表为空 5 for i in range(1,11): #遍历10此落地 6 s = 100/(2**(i-1)) #s为每次落地的高度(100,50,25,12.5.........) 7 li.append(s) #将每次落地的高度放入列表li 8 9 for x in li: #遍历这个高度列表 10 h += x #将每次落地的高度累加 11 print(li) #打印以便验证这个高度list 12 print(‘球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f‘%((h*2-100),li[-1]/2)) #总共经过的米数是列表累加的两倍减去100(每个过程包括弹起和落地两部分距离, #第一次落地没有之前的弹起,所以减去100),第十次落地后弹起的距离,是第十次落地的距离除以2
本文出自 “学习笔记” 博客,请务必保留此出处http://netsyscode.blog.51cto.com/6965131/1747625
标签:题目:一球从100米高度自由落下 每次落地后反跳回原高度的一半;再落下 求它在第10次落地时 共经过多少米?第10次反弹多高?
原文地址:http://netsyscode.blog.51cto.com/6965131/1747625