【发布时间】:2012-04-11 13:57:39
【问题描述】:
我目前正在学校学习递归,当有很多递归调用时,我很难思考方法。我只想问你应该如何考虑递归,因为我知道跟踪每一步的方法调用会变得太乏味。
我们简要介绍的不是跟踪每个递归调用,而是考虑通过归纳进行递归,但我遇到的问题是如何将归纳应用于数学以外的情况。就像如果有一种方法可以递归打印出这样的数字:
public void blah(int n)
{
for (int i = 0; i < n; i++)
blah(i);
System.out.print(n);
}
我很难考虑打印出来的内容,而且我看不出这里的归纳有什么意义(如果它可以在任何地方使用,请原谅我的无知)。
但我想我真正的问题是如何在不必跟踪每个方法调用的情况下解决递归问题?最好的办法是查看基本情况和倒退的工作吗? (但即便如此,我认为我对发生的事情感到模糊)。
【问题讨论】:
-
看起来,你学校的一位学长曾经问过这个问题。看这里:stackoverflow.com/questions/717725/understanding-recursion
-
@CowZow:相关:stackoverflow.com/questions/105838/…