自定义一个函数sumfib(n),返回斐波那契数列前n项之和 python?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义一个函数sumfib(n),返回斐波那契数列前n项之和 python?相关的知识,希望对你有一定的参考价值。

参考技术A #自定义一个函数sumfib(n),返回斐波那契数列前n项之和
def sumfib(n):
s = 0
sum=0
a, b = 0, 1
while s < n:
print(b, end=" ")
sum =sum + b
s = s+1
a, b = b, a + b
return

sumprint('合计为:',sumfib(10))
##
1 1 2 3 5 8 13 21 34 55 合计为: 143

python实现斐波那契数列(Fibonacci sequence)

使用Python实现斐波那契数列(Fibonacci sequence)

斐波那契数列形如 1,1,2,3,5,8,13,等等。也就是说,下一个值是序列中前两个值之和。写一个函数,给定N,返回第N个斐波那契数字。例如,1返回1

6返回8

我选择了两种方法,一种是将list变成一个队列,另一个则是使用环形队列。不多说,直接上代码;后面我会对为什么这样实现做一个解释

第一个是使用队列的方式:

1 def fibonacciSeq(num):
2     fibonacciSeqList = []
3     for i in xrange(0, num):
4         if len(fibonacciSeqList) < 2:
5             fibonacciSeqList.append(1)
6             continue
7         fibonacciSeqList.append(fibonacciSeqList[-1]+fibonacciSeqList[-2])
8         fibonacciSeqList.pop(0)
9     return fibonacciSeqList[-1]

第二个同样使用了list,但是是已经初始化好的list:

1 def fibonacciSeq_c(num):
2     fibonacciSeqList = [1,1,1]
3     writeposi = 0
4     if num <= 2:
5         return fibonacciSeqList[num]
6     for i in xrange(2, num):
7         writeposi = i % 3
8         fibonacciSeqList[writeposi] = fibonacciSeqList[writeposi-1] + fibonacciSeqList[writeposi-2]
9     return fibonacciSeqList[writeposi]

这两种,达到的目录是一样的,都是返回第N个斐波那契数

下面是对上面的代码的解释:

1. 为什么使用队列的方式?

因为,当你所要求的数是一个很大的数时,你会发现单纯使用list为将内存占满

2. 为什么使用环形队列?

因为,当运算量越大的时候,环形队列会比第一种方式,所占用的时间更短,虽然可以是毫秒级别的。哈哈哈

以上是关于自定义一个函数sumfib(n),返回斐波那契数列前n项之和 python?的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契数列

编写一递归函数求斐波那契数列的前40项

递归求斐波那契数列

python做斐波那契数列。

用递归函数求斐波那契数列的第n项的值

利用递归函数求斐波那契值python版