码迷,mamicode.com
首页 > 编程语言 > 详细

C++算法之 斐波那契数列

时间:2015-01-21 11:39:11      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

题目:写一个函数,输入n,求斐波那契数列的第n项。

 

方法1:递归:

int fib2(int n)
{
	if(n == 0)
	  return 0;
	if(n == 1)
	  return 1;
	return fib2(n-1)+fib2(n-2);
}

缺点:如果n比较大,那么递归程度比较深

 

方法2:

int fib(int n)
{
	int result[2] = {0,1};
	if(n < 2)
		return result[n];
	int fibOne = 0;
	int fibTwo = 1;
	int fibN   = 0;
	int i = 0;
	for(i = 2; i <= n; i++)
	{
		fibN = fibOne + fibTwo;
		
		fibOne = fibTwo;
		fibTwo = fibN;
	}
	
	return fibN;
}


避免了无穷的的递归问题,一个循环时间复杂度为O(n);

C++算法之 斐波那契数列

标签:

原文地址:http://blog.csdn.net/djb100316878/article/details/42965181

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!