python基础算法合集(2)(递归算法)斐波那契数列

上期我们用最普通的算法写了斐波那契数列,本期我们用递归的算法写。同样的程序效果。
所谓递归就是函数自己调用自己,但首先递归需要有个出口,不然程序会 陷入死循环的。
用递归写斐波那契数列:
递归算法主要是通过列表的切片功能判断数字的索引,即本程序是通过索引的位置计算斐波那契数列的值的。
首先定义一个函数体fib(n),参数是接收由用户输入的数列的长度,如果索引是1或2,表示数列的第一个和第二个数字,那么就返回[1]、[1、1],通过这个功能将第一个和第二个数字剔除了。那么从所以2开始就是表示数列的第三个是数字,来个for循环,循环变量从2到n(循环变量是从2到n-1),将列表索引的第[n-1]、[n-2]的索引值做加法运算,并将这两个数值添加到列表中去就可以了。
程序如下:


#递归算法
def fib(n):
    if n==1:
        return [1]
    if n==2:
        return [1,1]
    fib=[1,1]
    for i in range(2,n):
        fib.append(fib[-1]+fib[-2])
    return fib
print (fib(10))

效果如下图所示:
在这里插入图片描述
下期:
找不重复的数字组合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有图有派

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值