我在我的智慧结束......我理解递归的更简单的例子,但当我变得棘手时,我没有线索。这是一个例子。如果有人能说出它的作用,我会很高兴。什么是编译器做...递归 - 它做什么
public static char mystery(String s, int n, int m)
{
if (n==1) return s.charAt(m);
char first = mystery(s, n/2, m*2);
char second = mystery(s, n/2, m*2 +1);
System.out.print(first + " " + second + " ");
return first;
}
什么时候该方法被调用打印: 谜( “fredpass”,5,1)
答案是passps
我不没有CLUE他们是如何到达那里的......
如果有人能帮助我处理这件事情,我会非常感激。在互联网上的其他地方,他们只解释阶乘 - 简单的例子。不知道会发生什么,如果你把它叫做char first = mystery (blah);
两次,然后再次char second = mystery (blah);
那么,这种方法的意图是什么呢?但它是如何工作的就像其他任何形式的递归一样。 – 2011-03-15 12:58:13
这条线是否正确? 'char second = mystery(s,n/s,m * 2 +1);'当试图用一个字符串除n时,'n/s'部分是否会通过编译错误? – justkt 2011-03-15 12:59:01
这些数字对我来说没有意义。为什么你有'n/s'而不是'n/2'? – 2011-03-15 13:00:44