我试图使用教育示例来全面理解递归。为了使这项任务变得更容易,对我来说准确地知道当前正在运行哪个递归调用非常有用(例如,通过将此信息打印到控制台)。简单的计数器在这里不合适,因为您不仅需要计算有多少个递归调用,而且还需要知道当前正在执行相对于第一个调用的哪个调用。
如果可以为每个调用分配一个唯一的标识符(例如数字),当递归调用方法时以及在后续递归调用完成工作后返回该方法时,该标识符可以显示在控制台上,这将有很大帮助我把整个画面写下来。
请告诉我,这可能吗?
PS 我们不是在谈论尾部递归 - 它很简单并且不会引起任何问题。这种情况要复杂得多 - 递归调用被放置在循环内,并且传递给递归调用方法的参数取决于该循环的迭代。
如果我正确理解您需要什么:
当输入函数时,增加全局计数器,并将其值复制到局部变量中,该变量将存储该值,直到底层递归调用返回。
...
如果您只需要当前级别的递归: