python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
电商API&Tina11 小时前
跨境电商如何接入1688官方寻源通接口?附接入流程
java·数据库·python·sql·oracle·json·php
jwn99911 小时前
Laravel11.x新特性全解析
android·开发语言·php·laravel
feifeigo12311 小时前
航天器交会的分布式模型预测控制(DMPC)MATLAB实现
开发语言·分布式·matlab
于先生吖11 小时前
支持二开与商用,JAVA 漫剧付费观看系统完整源码
java·开发语言
环黄金线HHJX.11 小时前
【从0到1】
开发语言·人工智能·算法·交互
曹牧11 小时前
Java: 从oracle表中获取一组kv序列
java·开发语言·oracle
深邃-11 小时前
【C语言】-数据在内存中的存储(1)
c语言·开发语言·数据结构·c++·算法
Lyyaoo.11 小时前
【Java基础面经】Java 注解的底层原理
java·开发语言·python
HAPPY酷11 小时前
PyCharm 终极避坑指南:环境选择、镜像加速与包管理
ide·python·pycharm
妙蛙种子31111 小时前
【Java设计模式 | 创建者模式】 抽象工厂模式
java·开发语言·后端·设计模式·抽象工厂模式