递归实现:
long fibonacci(int n)
{
if (n == 1 || n == 2)
return 1;
else
return fibonacci(n-1) + fibonacci(n-2);
}
非递归实现:
long fibonacci(int n)
{
long f1, f2;
int i;
f1 = 1; f2 = 1;
for (i = 0; i < (n-1)/2; i++)
{
f1 = f1 + f2;
f2 = f2 + f1;
}
return n%2 ? f1 : f2;
}