这道题题目为:写一个函数,数入n,求斐波那契数列的第n项。
有关斐波那契数的定义如下:
本文采用递归和非递归两种算法求解:
(1)递归
代码如下:
int fibonacci(int n)
{
if (n <= 2)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
(2)非递归
从上往下计算,先根据f(0)+f(1)计算出f(2),再将f(1)+f(2)计算出f(3),以此类推。
代码如下:
int fibonacci(int n)
{
int FibOne= 1;
int FibTwo = 0;
int FibSum = 1;
while (n > 2)
{
FibSum = FibOne + FibTwo;
FibOne = FibTwo;
FibTwo = FibSum;
n--;
}
return FibSum;
}