python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
techdashen1 分钟前
深入 Rust enum 的内存世界
开发语言·后端·rust
时光Autistic2 分钟前
【安装教程】AI标注工具X-AnyLabeling安装配置
人工智能·python
knight_9___7 分钟前
大模型project面试7
人工智能·python·算法·面试·大模型·agent
yuhuofei202112 分钟前
【Python入门】Python与PyCharm的安装
开发语言·python·pycharm
吴声子夜歌16 分钟前
Java——类加载机制
java·开发语言·python
杨校25 分钟前
杨校老师课堂之C++的位运算应用专项训练
开发语言·c++
笨蛋不要掉眼泪30 分钟前
Java并发编程:线程的创建和运行
java·开发语言·jvm
九伯都31 分钟前
java编写 agent 入门案例
java·开发语言
代码中介商40 分钟前
C++ STL 容器完全指南(三):deque、list 与 map 深度详解
开发语言·c++
xqqxqxxq1 小时前
Java 线程池(一)
java·开发语言