python中的函数递归

函数递归,就是一个函数,自己调用自己。

如上图所示,是一段通过定义函数,编写函数体来实现for循环。实现的是从1到n的累乘。即求n的阶乘,

如上图所示,是一段函数的递归来实现1到n的累乘操作,将1****n拆分成一个个的子问题,如果条件是1时就返回1,如果条件不是1时,就return n * factor(n - 1)将n的值一步步衰减。

递归的代码,虽然很多时候看起来写法很简单,但是执行过程可能会非常复杂!!

在分析递归代码的时候,光用脑子想,是很困难!!

要么画图,要么使用调试器,来一步步的查看代码的运行情况。

如果递归函数的递推公式写错,那么就可能出现无限递归的情况,造成栈溢出(即这块内存空间用来储存变量的值是不够的,由此出现栈溢出的情况。)

递归的优点:代码非常简洁,尤其是处理一些"问题本身就是通过递归的方式定义的"

相关推荐
郝学胜-神的一滴几秒前
人工智能发展漫谈:从专家系统到AIGC,再探深度学习核心与Pytorch入门
人工智能·pytorch·python·深度学习·算法·cnn·aigc
lsx2024063 分钟前
Python 100例:编程实践与技巧解析
开发语言
大鹏说大话3 分钟前
单点登录(SSO)全景指南:从原理剖析到落地实战
开发语言
老杨_QQ1222090174 分钟前
对量化交易未来的思考
人工智能·python·金融
nananaij4 分钟前
【LeetCode-03 判断根结点是否等于子结点之和 python解法】
python·算法·leetcode
逆境不可逃8 分钟前
【从零入门23种设计模式21】行为型之空对象模式
java·开发语言·数据库·算法·设计模式·职场和发展
老师好,我是刘同学8 分钟前
归并排序原理与Python实现详解
python·排序算法
Dxy123931021618 分钟前
PyTorch的CyclicLR详细介绍:给模型训练装上“涡轮增压”
人工智能·pytorch·python
健康平安的活着23 分钟前
java中乐观锁+事务在批量导入,批量审批案例的使用
java·开发语言
那小子、真烦24 分钟前
OpenClaw Skill 编写规范 与示例
python