python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
Dxy12393102161 分钟前
PyTorch的CosineAnnealingWarmRestartsLR详细介绍:给模型训练来一场“热启动”的艺术
人工智能·pytorch·python
daxi1502 分钟前
C语言从入门到进阶——第13讲:深入理解指针(3)
c语言·开发语言·数据结构·算法
white-persist2 分钟前
【CTF线下赛 AWD】AWD 比赛全维度实战解析:从加固防御到攻击拿旗
网络·数据结构·windows·python·算法·安全·web安全
冰糖雪梨dd3 分钟前
【JavaScript】 substring()方法详解
开发语言·前端·javascript
AsDuang4 分钟前
Python 3.12 MagicMethods - 45 - __rpow__
开发语言·python
liuyao_xianhui4 分钟前
动态规划_简单多dp问题_打家劫舍_打家劫舍2_C++
java·开发语言·c++·算法·动态规划
老鱼说AI7 分钟前
祖师爷KR的C语言讲解:第6期-输入与输出
c语言·开发语言
小鸡脚来咯8 分钟前
SQL表连接
java·开发语言·数据库
大鹏说大话8 分钟前
消息队列 Kafka/RabbitMQ/RocketMQ 怎么选?业务场景对比指南
开发语言
IT WorryFree9 分钟前
OpenClaw 对接飞书 Debug 指南
开发语言·php·飞书