python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python实现斐波那契数列

python如何实现斐波那契数列

作者:签到赢福利

这篇文章主要介绍了python如何实现斐波那契数列问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python实现斐波那契数列

利用for循环来实现

核心:python列表中可以用-1,-2来索引和访问倒数第一个数和倒数第二个数。

fibs = [1,2]
for i in range(8):
    fibs.append(fibs[-2] + fibs[-1])
print(fibs)

运行结果:

运行结果

range中的参数代表此for循环的循环次数

使用while循环来实现

i = 0
j = 1
while i<10000
    print(i,end = ' ')
    i,j = j,i+j

运行结果:

在这里插入图片描述

i,j = j,i+j 是并列赋值,一开始竟然看成由逗号隔开的三个东西,然后想了好久,服了。

递归

def fibs(n):
    if n < 1:
        return -1
    elif n==1 or n==2:
        return 1
    else:
        return fibs(n-1) + fibs(n-2)
num = int(input('input num:'))
for i in range(1,num+1):
    print(fibs(i),end=' ')

递归函数里面的话得到的只是你输入个数的那个最大的斐波那契数,输出的话是需要一个一个输出的,就是用for循环输出。

python编写函数求斐波拉契数列(0、1、1、2、3、5、8、..)并求用户输入的前x项之和

什么是斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”

指的是这样一个数列:

0、1、1、2、3、5、8、13、21、34、……

在数学上,斐波那契数列以如下被以递推的方法定义:

F(1)=1
F(2)=1
F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

斐波那契数列规律

除了第一项和第二项外,从第三项开始,每一项都等于前两项之和

斐波那契数列的代码实现

用Python编写函数求斐波拉契数列(0、1、1、2、3、5、8、…)并根据用户输入的前x项进行求和

def fib(n):
    list = [0,1]
    a,b = 0,1
    for i in range(2,n+1):
        a,b=b,a+b 
        list.append(b)
    return list
while True:
    try:
        x = int(input('请输入斐波那契数列的长度:'))
        if x <= 0:
            print('长度输入不合法!')
            continue
        else:
            sum = 0
            list = fib(x) # 调用前面写的fib函数
            print('前{}项的斐波那契数列是:'.format(x))
            for j in range(0,x):
                print(list[j],end=' ')
                sum = sum + list[j] # 求和
            print ('\n')
            print('前{}项的斐波那契数列之和是:\n{}'.format(x,sum))
            break
    except ValueError:
        print ('长度输入不合法!')
        continue

执行结果:

请输入斐波那契数列的长度:20
前20项的斐波那契数列是:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 

前20项的斐波那契数列之和是:
10945

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文