Fibonacci数列是这样的:
1,1,2,3,5,8,13,21,34。。。
就是前两个数相加等于后一个。
采用递归的方法实现是这样的:
int Fibonacci(int n)
{
if (n == 0 || n == 1)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
算法具有指数级的计算时间。
非递归方法:
int Fibonacci2(int n)
{
int fib1=1, fib2=1, fib3;
if (n==0||n==1)
{
return 1;
}
else
{
for (int i = 2; i <= n; i++)
{
fib3 = fib1 + fib2;
fib1 = fib2;
fib2 = fib3;
}
return fib3;
}
}
算法时间复杂度O(n)。
本文介绍了斐波那契数列的递归和非递归实现方法,详细分析了两种算法的时间复杂度,并对比了它们的优缺点。

6620

被折叠的 条评论
为什么被折叠?



