分享

[每日一题]30、用Python生成斐波那契数列

 Four兄 2019-08-30

什么是斐波那契数

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34...  

即从0和1开始,之后的斐波那契数列系数就由之前的两数相加。

以下展示了三种代码实现,仅供参考

解法一:常规解法

def fib(n):
    # 0,1 不做处理
    if n == 0 or n == 1:
        return n
    # 前一个 和 前两个数的和
    return fib(n - 1) + fib(n - 2)

# 生成前20个数列
for i in range(0, 20):
    print(fib(i), end=' ')

解法二:迭代相加

def fib(n):
    num1, num2 = 1, 1
    # 迭代相加
    for i in range(n - 1):
        num1, num2 = num1 + num2, num1
    return num1

解法三:生成器

def fid(n):
    i, num1, num2 = 0, 1, 1
    while i < n:
        # 通过生成器来实现
        yield num1
        num1, num2 = num1 + num2, num1
        i += 1

# 前20个数列
result = fid(20)
print([i for i in result])

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多