python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
并不喜欢吃鱼几秒前
从零开始C++----四.vector的使用与底层实现
开发语言·c++
2301_777599371 分钟前
Go语言怎么用sync.Map_Go语言并发安全Map教程【详解】
jvm·数据库·python
zhangchaoxies2 分钟前
Go语言如何用定时器_Go语言time.Ticker定时器教程【详解】
jvm·数据库·python
Rsun045513 分钟前
14、Java 模板方法模式从入门到实战
java·python·模板方法模式
2501_914245934 分钟前
如何用 setCustomValidity 自定义表单验证失败的提示文本
jvm·数据库·python
2301_817672265 分钟前
bootstrap如何修改标签页切换的过渡时间
jvm·数据库·python
沐雪轻挽萤11 分钟前
17. C++17新特性-并行算法 (Parallel Algorithms)
java·开发语言·c++
墨澜逸客11 分钟前
华胥祭坛志---文/墨澜逸客
开发语言·深度学习·学习·百度·php·学习方法·新浪微博
覆东流14 分钟前
第3天:Python print深入与格式化输出
开发语言·后端·python
蓝色的杯子14 分钟前
JWT 到底怎么用?一篇讲透 + FastAPI 鉴权实战
python·fastapi·jwt