大家好,又見面了,我是你們的朋友全棧君。
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))
運行結果:
[[email protected] 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
[[email protected] 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
發布者:全棧程序員棧長,轉載請注明出處:https://javaforall.cn/126516.html原文鏈接:https://javaforall.cn