1 #题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
2
lim
=
[
2
]
3
lin
=
[
1
]
4
for
x
in
range
(
19
):
5
lim.append(lim[x]
+
lin[x])
6
lin.append(lim[x])
7
print
(lim)
8
print
(lin)
9
print
(
len
(lim))
10
11
i
=
0
12
s
=
0
13
while
i <
20
:
14
s
+
=
lim[i]
/
lin[i]
15
i
+
=
1
16
print
(
'这个数列的前20项之和是%.20f'
%
s)
|
运行结果:
1
2
3
4
5
6
|
[root@HK code_100]
# python code_24.py
[
2
,
3
,
5
,
8
,
13
,
21
,
34
,
55
,
89
,
144
,
233
,
377
,
610
,
987
,
1597
,
2584
,
4181
,
6765
,
10946
,
17711
]
[
1
,
2
,
3
,
5
,
8
,
13
,
21
,
34
,
55
,
89
,
144
,
233
,
377
,
610
,
987
,
1597
,
2584
,
4181
,
6765
,
10946
]
20
这个数列的前
20
项之和是
32.66026079864163733646
[root@HK code_100]
#
|
代码解释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
2
lim
=
[
2
]
#初始化分子列表第一个元素
3
lin
=
[
1
]
#初始化分母列表第一个元素
4
for
x
in
range
(
19
):
#除去下标为0的第一个元素,循环19次
5
lim.append(lim[x]
+
lin[x])
#按照数字规律,计算分子列表的每一项,添加到lim列表中
6
lin.append(lim[x])
#按照数字规律,计算分母列表的每一项,添加到lin列表中
7
print
(lim)
#打印列表lim,供参考
8
print
(lin)
#打印列表lin,供参考
9
print
(
len
(lim))
#打印列表长度,供参考
10
11
i
=
0
#初始化while判断参数
12
s
=
0
#累加之和初始赋值为0
13
while
i <
20
:
#定义while判断条件,累加20次
14
s
+
=
lim[i]
/
lin[i]
#累加两个列表相应位置除法的值
15
i
+
=
1
#i循环加1,触发while判断条件
16
print
(
'这个数列的前20项之和是%.20f'
%
s)
#小数点后20保留20位,格式化输出前20项之和
|
本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1748482
,如需转载请自行联系原作者