《100天精通Python》专栏推荐白嫖80g Python全栈视频
《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
- 优点:订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
- 专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
1. 算法描述
什么是递归函数?
- 递归函数就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
- 递归函数必须有结束条件。一句话总结递归:自我调用且有完成状态
2. 算法分析
设计递归函数三要素
- 第一要素:明确你这个函数想要干什么
- 第二要素:寻找递归结束条件
- 第三要素:找出函数的等价关系式
3. 代码实现
实现代码📝:
def p(n):
if n == 0:
return
print('递归前->', n)
p(n - 1)
print('递归后->', n)
p(5)
运行结果👇:
4. 代码分析
递归函数其实就是每次调用递归的时候把值压入栈中
(1)当第一次调用 p(5) 时,会把 p(5) 压入栈中:
(2)紧接着调用 p(4)、p(3)、p(2)、p(1),纷纷压入栈中:
(3)当 p(1) 调用完后,调用 p(0) ,n==0,递归结束
(4)由于栈时后进先出,所以先打印 1: