您的位置:首页 > 编程语言 > Python开发

【python】编程语言入门经典100例--24

2016-03-07 17:53 726 查看
1 #题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

代码:

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)


运行结果:

[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]#


代码解释:

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项之和
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  序列 题目 有一分数