对下面的递归算法,写出调用f(4)的执行结果。
收起
知与谁同
2018-07-22 11:13:31
2402
0
2
条回答
写回答
取消
提交回答
-
行 输出 递归栈
1 4 f(4):
2 3 f(4):f(3):
3 2 f(4):f(3):f(2):
4 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
5 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
6 2 f(4):f(3):f(2):
7 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
8 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
9 3 f(4):f(3):
10 2 f(4):f(3):f(2):
11 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
12 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
13 2 f(4):f(3):f(2):
14 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
15 1 f(4):f(3):f(2):f(1):
f(4):f(3):f(2):f(1):f(0):
f(4):f(3):f(2):f(1):f(0):
2019-07-17 22:54:51
-
答案是这个:4 3 2 1 1 2 1 1 3 2 1 1 2 1 1
这个需要你深刻理解递归的内涵,也就是函数堆栈怎么恢复现场的。如果学过编译原理或者汇编的话会比较容易理解。
你可以debug单步调试一下。
2019-07-17 22:54:51