python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
HeisenbergWDG5 分钟前
线程实现runnable和callable接口
java·开发语言
事橙199910 分钟前
KITTI数据集国内下载链接
人工智能·python·yolo
少控科技16 分钟前
QT新手日记028 QT-QML所有类型
开发语言·qt
HarmonLTS24 分钟前
Python人工智能深度开发:技术体系、核心实践与工程化落地
开发语言·人工智能·python·算法
weixin_4624462329 分钟前
Python 解析 Excel 图表(Chart)信息实战:从 xlsx 中提取标题、字体和数据
python·数据分析·excel·报表自动化
丁一郎学编程31 分钟前
测试开发面经
java·开发语言
wjs202432 分钟前
TypeScript 命名空间
开发语言
a程序小傲36 分钟前
京东Java面试被问:RPC调用的熔断降级和自适应限流
java·开发语言·算法·面试·职场和发展·rpc·边缘计算
weixin_4624462337 分钟前
使用 Python 脚本自动化管理 Docker 容器:启动、修改密码、删除及系统资源监控
python·docker·自动化·系统监控
独自破碎E38 分钟前
MyBatis Flex和MyBatis Plus的区别
java·开发语言·mybatis