python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
你怎么知道我是队长6 分钟前
JavaScript 的控制语句介绍
开发语言·javascript·ecmascript
RSTJ_162530 分钟前
PYTHON+AI LLM DAY ONE HUNDRED AND THREE
开发语言·人工智能·python
简~7681 小时前
python openpyxl处理Excel成绩表自动统计
python·大学生
梦想不只是梦与想1 小时前
Python 官方包管理器pip
python·pip
charlie1145141912 小时前
RK3506B: buildroot:出一份正规的最小 rootfs
开发语言·嵌入式·开源项目·rk3506b
Byron Loong2 小时前
【c#】Bitmap释放之 大象与蚊子
开发语言·c#
wahahaman2 小时前
基于GBDT的次日降水量预测实验
人工智能·python·机器学习·数据分析
Nontee2 小时前
数据类型与包装类 — 一个新手学Java的数据类型笔记
java·笔记·python
音符犹如代码2 小时前
Java动态线程池:避坑原生线程池,吃透Dynamic-TP,手写一个Demo
java·开发语言
喜欢就别2 小时前
平均风险:Rényi DP 和零集中 DP
开发语言·r语言