Code 1:
public static int fibonacci (int n){
if (n == 0 || n == 1) {
return 1;
} else {
return fibonacci (n-1) + fibonacci (n-2);
}
}
你如何使用fibonacci
如果你还没有解释完它是什么?我已经能够理解在其他情况下使用递归,如下所示:
Code 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) ;
}
}
但在代码 2 的情况下,n
最终会达到一个不满足的点n>0
并且该方法将停止递归调用自身。不过,就代码 2 而言,我不知道它如何能够从 1 中获得自身,如果n=1
是2、3、5的起点,依此类推。另外,我不明白这条线如何return fibonacci (n-1) + fibonacci (n-2)
会工作,因为fibonacci (n-2)
在某种意义上必须包含fibonacci (n-1)
为了工作,但它还没有出现。
我正在看的书说它会起作用。它是如何工作的?
好吧,抛开编译器实际上对代码做了什么(它很可怕,但很漂亮)以及 CPU 实际如何解释代码(同样),有一个相当简单的解决方案。
考虑这些文本说明:
对编号块进行排序:
- 选择一个随机块。
- 如果它是唯一的块,则停止。
- 移动方块
左侧数字较低,
右边的数字更大。
- 对编号较低的块进行排序。
- 对编号较大的块进行排序。
当您看到说明 4 和 5 时,系统会要求您重新开始整个过程。然而,这不是问题,因为您仍然知道如何开始该过程,并且当一切最终解决时,您将获得一堆已排序的块。你可以用纸条盖住说明,遵循它们也不会更困难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)