开发者社区 问答 正文

对下面的递归算法,写出调用f(4)的执行结果。

对下面的递归算法,写出调用f(4)的执行结果。

展开
收起
知与谁同 2018-07-22 11:13:31 2505 分享 版权
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
    赞同 展开评论
  • TA有点害羞,没有介绍自己...
    答案是这个:4 3 2 1 1 2 1 1 3 2 1 1 2 1 1
    这个需要你深刻理解递归的内涵,也就是函数堆栈怎么恢复现场的。如果学过编译原理或者汇编的话会比较容易理解。
    你可以debug单步调试一下。
    2019-07-17 22:54:51
    赞同 展开评论
问答分类:
问答地址: