python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
Data_agent8 分钟前
1688获得1688店铺所有商品API,python请求示例
java·开发语言·python
一晌小贪欢13 分钟前
【Python办公】-图片批量添加文字水印(附代码)
开发语言·python·图片水印·python水印·python添加水印·图片添加水印
Yeats_Liao16 分钟前
CANN Samples(十三):Ascend C 算子开发入门
c语言·开发语言
越来越无动于衷18 分钟前
Java 实现 WebService(SOAP)联网调用:从原理到实战
java·开发语言
海上飞猪23 分钟前
【python】基础数据类型
python
悦悦子a啊25 分钟前
将学生管理系统改造为C/S模式 - 开发过程报告
java·开发语言·算法
万邦科技Lafite37 分钟前
一键获取淘宝关键词商品信息指南
开发语言·数据库·python·商品信息·开放api·电商开放平台
fqbqrr44 分钟前
2512C++,clangd支持模块
开发语言·c++
han_hanker1 小时前
泛型的基本语法
java·开发语言
Jurio.1 小时前
Python Ray 分布式计算应用
linux·开发语言·python·深度学习·机器学习