Python3练习题 019 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

Posted 点影

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3练习题 019 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。相关的知识,希望对你有一定的参考价值。

后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果。注意,假设分子为a,分母为b,虽然 a = a + b,

但此时a已经变成 a+b 了,所以再给b重新赋值的时候,得是 (a+b)-b 才能等于原分母b,所以重新赋值时就得写成 a-b

 

方法一

from fractions import Fraction


def fibonacci(n):
a, b = 1, 2
res = [1]
i = 1
while i < n:
a, b = b, a+b
res.append(a)
i += 1
else:
return res

result = fibonacci(21)

sum_result = sum([Fraction(i[0],i[1]) for i in zip(result[1:],result[0:-1])])
print (sum_result)



方法二
from fractions import Fraction
 
sum = 0
a, b = 2, 1
for i in range(20):
    sum = sum + Fraction(a/b)
    a = a + b
    b = a - b
print(sum)
 
方法三
sum = 0
a, b = 2, 1
for i in range(20):
    sum = sum + a/b
    a = a + b
    b = a - b
print(sum)

以上是关于Python3练习题 019 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。的主要内容,如果未能解决你的问题,请参考以下文章

Java基础50道经典练习题(20)——求前20项之和

Java基础50道经典练习题(20)——求前20项之和

Java50道经典习题-程序20 求前20项之和

使用C语言编写程序,求解有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个序列的前20项

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

java基礎有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。