1 #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
代码:
1
2
3
4
5
6
7
8
9
10
11
|
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
))
|
运行结果:
1
2
3
4
|
[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]
#
|
代码解释:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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
|
本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1747625,如需转载请自行联系原作者