美文网首页
python6_斐波那契数列

python6_斐波那契数列

作者: xyb_python | 来源:发表于2020-06-03 11:02 被阅读0次

# 题目:斐波那契数列。

#

# 程序分析:斐波那契数列(Fibonacci sequence),

# 又称黄金分割数列,指的是这样一个数列:

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

#

# 在数学上,费波那契数列是以递归的方法来定义:

#

# F0 = 0    (n=0)

# F1 = 1    (n=1)

# Fn = F[n-1]+ F[n-2](n=>2)

# 官方解答:

# 方法一:

def fib_1(n):

    a, b = 1, 1

    for i in range(n - 1):

        a, b = b, a + b

    return a

# 输出了第10个斐波那契数列

print(fib_1(10))

# 方法二:

# 使用递归

def fib_2(n):

    if n == 1 or n == 2:

        return 1

    return fib_2(n - 1) + fib_2(n - 2)

# 输出了第10个斐波那契数列

print(fib_2(10))

# 方法三:

def fib_3(n):

    if n == 1:

        return [1]

    if n == 2:

        return [1, 1]

    fibs = [1, 1]

    for i in range(2, n):

        fibs.append(fibs[-1] + fibs[-2])

    return fibs

# 输出前 10 个斐波那契数列

print(fib_3(10))

# 个人见解:

def fib_4(n):

    l = [1]

    i = 1

    a = 0

    b = 1

    while i < n:

        c = b + a

        l.append(c)

        a = b

        b = c

        i += 1

    return l

print(fib_4(10))

我觉得方法二的递归用的非常巧妙,大量减少代码量

相关文章

网友评论

      本文标题:python6_斐波那契数列

      本文链接:https://www.haomeiwen.com/subject/oiojzhtx.html