python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
焦糖玛奇朵婷15 小时前
盲盒小程序开发|解锁开箱新体验[特殊字符]
大数据·开发语言·程序人生·小程序·软件需求
1104.北光c°15 小时前
基于Canal + Kafka的高可用关注系统:一主多从关系链
java·开发语言·笔记·分布式·程序人生·kafka·一主多从
2501_9249526915 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
Mem0rin15 小时前
[Java]异常及其处理
java·开发语言
2401_8914821715 小时前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
2401_8512729915 小时前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
2401_8463416515 小时前
调试技巧与核心转储分析
开发语言·c++·算法
小陈的进阶之路16 小时前
requests接口自动化测试
python
Rooting++16 小时前
C 指针重点
c语言·开发语言
2301_8154829316 小时前
C++安全编程指南
开发语言·c++·算法