Dav*_*vid 11 java recursion fibonacci
代码1:
public static int fibonacci (int n){
if (n == 0 || n == 1) {
return 1;
} else {
return fibonacci (n-1) + fibonacci (n-2);
}
}
Run Code Online (Sandbox Code Playgroud)
fibonacci如果你还没有完成解释它是什么,你怎么用?我已经能够理解在其他情况下使用递归,如下所示:
代码2:
class two
{
public static void two (int n)
{
if (n>0)
{
System.out.println (n) ;
two (n-1) ;
}
else
{
return ;
}
}
public static void main (String[] arg)
{
two (12) ;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在代码2的情况下,n最终将达到它不满足的点,n>0并且该方法将停止递归调用自身.但是,在代码2的情况下,我不知道它是如何从1 n=1开始的,如果是起点2和3和5,依此类推.此外,我不知道该线如何return fibonacci (n-1) + fibonacci (n-2)工作,因为fibonacci (n-2)在某种意义上必须包含fibonacci (n-1)才能工作,但它还没有.
我正在看的这本书说它会起作用.它是如何工作的?
Rya*_*ior 12
好吧,把编译器实际对你的代码做的事情放在一边(这很糟糕,但很漂亮)以及CPU如何实际解释你的代码(同样),这是一个相当简单的解决方案.
请考虑以下文字说明:
要对编号的块进行排序
当您收到说明4和5时,系统会要求您重新开始整个过程.但是,这不是问题,因为你仍然知道如何启动这个过程,当它最终完成时,你会得到一堆排序的块.你可以用纸条来说明这些说明,并且它们不会更难以遵循.