|
发表于 2020-8-3 15:07:43
|
显示全部楼层
6 的递归次数太多了哈,我改成当 k = 3 的时候了,大体上就是这个意思,你看看能不能看懂,按照注释来~:
- def tri_recursion(k):
- # 进入函数 k = 3
- # 第一次递归 k = 2
- # 第二次递归 k = 1
- # 第三次递归 k = 0
- if(k>0):
- # 开始时 k = 3 满足条件 执行 if 代码块
- # 第一次递归 k = 2 满足条件 执行 if 代码块
- # 第二次递归 k = 1 满足条件 执行 if 代码块
- # 第三次递归 k = 0 不满足条件 执行 else 代码块
- result = k+tri_recursion(k-1)
- # 第一次进入递归 此时 k = 3 因为 k-1 = 2 则 tri_recursion(2) 即 k = 2 传入递归函数中去
- # 第二次进入递归此时 k = 2 因为 k-1 = 1 则 tri_recursion(1) 即 k = 1 传入递归函数中去
- # 第三次进入递归此时 k = 1 因为 k-1 = 0 则 tri_recursion(0) 即 k = 0 传入递归函数中去
- # 即进入递归的顺序是从主函数tri_recursion(3) 开始进入 if 递归
- # 顺序是: tri_recursion(2) --> tri_recursion(1) --> tri_recursion(0)
- print(result)
-
- else:
- # 第三次递归结束递归,result = 0
- result = 0
-
- return result
- # 递归返回顺序是 tri_recursion(0) --> tri_recursion(1) --> tri_recursion(2) --> tri_recursion(3)
- # 所以打印顺序是 不打印,返回0 --> 打印 1+0 --> 打印 1+2 --> 打印 3+3
-
- tri_recursion(3)
复制代码 |
|