python编程入门十三:递归

本文介绍了Python编程中的递归概念,通过递推和递归两种方式实现阶乘运算,接着探讨了递归在解决斐波那契数列问题中的应用。递推和递归的区别被详细阐述,强调了递归的直观性和代码简洁性,同时也指出递归可能导致的效率问题。最后总结了递归的三个关键条件:明确的结束条件、问题规模递减和相邻递归间的紧密联系。
摘要由CSDN通过智能技术生成

第十三章:递归

说到递归,或许你也听说过递推,这两个概念其实应该算到算法的行列,在python编程入门的教程中我们也只是简单的讲一下,知道这个概念以及可以简单的应用就可以;本章其实也应该属于函数的范畴,因为只要用到递归,就肯定需要借助函数,所以本章也作为函数的一个延伸和应用来讲。

13.1 递归、递推傻傻分不清楚

首先我们通过一个数学问题来深入区分一下递推递归阶乘这个概念想必每个人在初高中就已经开始接触了,如果我们说5的阶乘,那结果则是1 x 2 x 3 x 4 x 5所得到的积;以此类推,一个n的阶乘则是从1 x 2 x 3 x … x n,让我们算阶乘的方式,在上学时可能只有手算或者是使用计算器来逐一做乘法运算,但现在我们使用编程语言却可以只用几行代码来实现所有数字阶乘的运算,接下来我们分别使用递推递归来编写求阶乘的程序。

13.1.1 使用递推进行的阶乘运算

首先我们通过概念来了解一下什么是递推

递推是按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。

接下来我们直接编写并分析下面通过递推来实现求阶乘算法的代码:

def factorial(n):
    number = 1
    for i in range(1, n + 1):
        number = number * i
    return number

print(factorial(5))

结果:

120

上面的代码是通过递推的方式来实现对5做的阶乘,可以发现这块代码的逻辑很简单,我们首先定义一个初始值为1的number变量(初始化为1的原因是1乘以任何数都为这个数,不会对结果有影响),然后我们使用for循环,同样需要确定for循环中i要从1

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

洪博hopes

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

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

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

打赏作者

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

抵扣说明:

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

余额充值