python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
威联通网络存储4 分钟前
某高端显示面板制造企业:基于威联通 TS-h2490FU 的 AOI 检测数据治理实践
python·制造
globaldomain3 小时前
什么是用于长距离高速传输的TCP窗口扩展?
开发语言·网络·php
沈阳信息学奥赛培训4 小时前
#undef 指令 (C/C++)
c语言·开发语言·c++
2401_873204654 小时前
分布式系统安全通信
开发语言·c++·算法
FreakStudio4 小时前
不用装软件!这款MicroPython浏览器 IDE :让你在手机上也能调试树莓派 Pico
python·单片机·嵌入式·电子diy·tinyml
m0_743470375 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
Dxy12393102165 小时前
JS发送请求的方法详解
开发语言·javascript·ecmascript
sw1213895 小时前
C++中的代理模式实战
开发语言·c++·算法
難釋懷5 小时前
Lua语法入门-条件控制、函数
开发语言·junit·lua
桌面运维家5 小时前
Win10打印机共享故障排查:权限与网络配置详解
开发语言·网络·php