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

点击上方“Python3X”,选择“置顶或者星标”

第一时间收到精彩推送!

Python Every Day, 第 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])


以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎点击「在看」支持,谢谢各位。

640?wx_fmt=jpeg

如需查看更多[Python Every Day]系列,请点击我的主页的【每日一题】菜单。

640?

感谢您的阅读

640?wx_fmt=gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值