python中的函数递归

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

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

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

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

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

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

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

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

相关推荐
zhangjw341 分钟前
第3篇:Java流程控制:if-else、switch、循环(for/while/do-while)全解析
java·开发语言
Shorasul2 分钟前
安装宝塔面板提示端口被占用_查找并终止占用进程
jvm·数据库·python
REDcker5 分钟前
C++ std::move实现原理与vector扩容移动语义
开发语言·c++·c
2401_871696529 分钟前
macOS 中使用 launchd 每分钟执行一次 PHP 脚本的完整配置指南
jvm·数据库·python
qq_12084093719 分钟前
Three.js 场景性能优化实战:首屏、帧率与内存的工程化治理
开发语言·javascript·性能优化·three.js
吕源林11 分钟前
MongoDB副本集在网络闪断后如何快速恢复_重连机制与心跳超时(electionTimeoutMillis)
jvm·数据库·python
杰克尼16 分钟前
天机学堂项目总结(day3~day4)
java·开发语言·spring
emovie16 分钟前
Python函数基础
linux·数据库·python
我叫Ycg18 分钟前
C++ 中关于插入函数insert() 与 emplace() 的区别与使用建议
开发语言·c++
Polar__Star18 分钟前
SQL中JOIN不同存储引擎表的影响_索引兼容性与查询性能评估
jvm·数据库·python