python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
醒了就刷牙7 分钟前
Hugging_Face实战
python
Volunteer Technology8 分钟前
LangGraph的Agent的上下文
人工智能·后端·python·langchain
luoluoal13 分钟前
基于python的医疗知识图谱问答系统(源码+文档)
python·mysql·django·毕业设计·源码
IvanCodes14 分钟前
八、C语言构造类型
c语言·开发语言
ytttr87314 分钟前
图像配准技术及其Matlab编程实现
开发语言·matlab
小比特_蓝光16 分钟前
STL小知识点——C++
java·开发语言·c++·python
I'm Jie20 分钟前
【已解决】SqlAlchemy 插入 MySQL JSON 字段时 None 变为 ‘null‘ 字符串,WHERE IS NULL 失效
数据库·python·mysql·json·fastapi·sqlalchemy
阿猿收手吧!23 分钟前
【C++】格式化库:告别繁琐,拥抱高效
开发语言·c++
消失的旧时光-194325 分钟前
第二十二课:领域建模实战——订单系统最小闭环(实战篇)
java·开发语言·spring boot·后端