我应该将此递归函数更改为迭代函数...
int rFib(int n)
{ //assumes n >= 0
if(n <= 1)
return n;
else
return (rFib(n-1) + rFib(n-2));
}
但是,我对此的数学观点还是空白...我将不胜感激。我能够获得其他3个函数,但似乎无法弄清楚这三个函数的数学运算。
public static int fib(int n)
{
int theFib = 1;
while(n > 1)
{
theFib = n - 1;
n = n + n - 2;
}
System.out.println(theFib);
return theFib;
}
最佳答案
Fibonacci sequence中的下一个数字是最后两个数字的和,因此您需要记住最后两个数字。
用伪代码,因为您应该自己做一些作业:
n1 = 0
n2 = 1
loop
n = n1 + n2
n1 = n2
n2 = n
end loop
我将它留给您以限制循环。