python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
ab12376810 分钟前
C++ size() 与 length() 核心笔记
开发语言·c++·笔记
新知图书14 分钟前
【图书推荐】《Python大数据分析师的算法手册》
python·数据分析
apcipot_rain16 分钟前
Python 脚本生成目录树
开发语言·python
kyriewen1131 分钟前
本地存储全家桶:从localStorage到IndexedDB,把数据塞进用户浏览器
开发语言·前端·javascript·ecmascript·html5
港股研究社44 分钟前
广汽年报里的隐线:组织改革、生态协同与修复起点
python
Sirius.z1 小时前
第T11周:优化器对比实验
python
loriloy1 小时前
Python 环境管理工具 pyenv-win (windows版本)
windows·python·pyenv-win
白藏y1 小时前
【C++】muduo核心类
开发语言·muduo
William Dawson1 小时前
【Java Stream 流:高效、优雅的集合操作 ✨】
java·windows·python
剑穗挂着新流苏3121 小时前
208_深度学习的鲁棒性之美:暂退法(Dropout)原理与实战
开发语言·pytorch·python·深度学习