您的位置:首页 > 其它

Fibonacci数列的递归和非递归

2016-04-10 12:54 134 查看
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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: