使用Python如何实现斐波那契数列

分享 编程评论阅读模式

斐波那契数列百度百科

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

1.for循环

def fibonacci1(n):
    a, b = 0, 1
    for i in range(n):
        a, b = b, a+b
        print(a)
 
 
fibonacci1(3)

def fib1(w):
    a, b = 1, 1
    for i in range(w-1):
        a, b = b, a+b
    return a
​​​​​​​
print(fib1(3))

2.while循环

def fibnaqi2(m):
    a, b = 0, 1
    i = 0
    while i < m:
        print(b)
        a, b = b, a+b
        i += 1
 
fibnaqi2(4)

3.使用递归

def fib2(q):
    if q == 1 or q == 2:
        return 1
    return fib2(q-1)+fib2(q-2)
​​​​​​​
print(fib2(9))

4.递归+for循环

def fibnacci3(p):
    lst = []
    for i in range(p):
        if i == 1 or i == 0:
            lst.append(1)
        else:
            lst.append(lst[i-1]+lst[i-2])
    print(lst)
 
fibnacci3(5)

5.递归+while循环

def fibnacci4(k):
    lis = []
    i = 0
    while i<k:
        if i == 0 or i == 1:
            lis.append(1)
        else:
            lis.append(lis[i-2]+lis[i-1])
        i += 1
    print(lis)
 
fibnacci4(6)

6.递归+定义函数+for循环

def fibnacci5(o):
    def fn(i):
        if i < 2:
            return 1
        else:
            return (fn(i-2)+fn(i-1))
    for i in range(o):
        print(fn(i))
​​​​​​​
fibnacci5(8)

7.指定列表

def fib3(e):
    if e == 1:
        return [1]
    if e == 2:
        return [1, 1]
    fibs = [1, 1]
    for i in range(2, e):
        fibs.append(fibs[-1]+fibs[-2])
    return fibs
 
print(fib3(12))

 

 

继续阅读
运营不易,
感谢支持!
weinxin
我的微信
我的微信公众号
我的微信公众号扫一扫
weinxin
我的公众号
 
公式库网
  • 本文由 公式库网 发表于 2023年3月23日22:19:02
  • 转载请务必保留本文链接:https://www.gongshiku.com/html/202303/shiyongpythonruheshixianfeibonaqishulie.html
视野

天涯论坛爆火的神帖,免费下载!

天涯论坛于 1999 年创立于海南岛,曾被誉为 “全球最大中文社区”,在互联网发展历程中具有重要地位。它拥有庞大且遍布全球华人圈的用户群体,注册用户曾超 1.3 亿,月覆盖用户超 2.5 亿,尤其是对...

发表评论