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))

效果如下图所示:
python基础算法合集(2)(递归算法)斐波那契数列_第1张图片
下期:
找不重复的数字组合

你可能感兴趣的:(python基础学习之路)