1.递归方法实现:
long Fibonacci(unsigned int n)
{
if(n<=0)
return 0;
if(n==1)
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
当参数较大时,存在很多不必要的计算。可改写成如下形式:
2.用循环的方法实现:
long Fibonacci(unsigned int n)
{
int result[2]={0,1};
if(n<2)
return result[n];
long fibMinusone=1;
long fibMinustwo=0;
long fibN=0;
for (unsigned i=2;i<=n;i++)
{
fibN=fibMinusone+fibMinustwo;
fibMinustwo=fibMinusone;
fibMinusone=fibN;
}
return fibN;
}