19.定義Fibonacci數列,輸入n,用最快的方法求該數列的第n項

題目:定義Fibonacci數列如下:   
  / 0 n=0
f(n)= 1 n=1
  / f(n-1)+f(n-2) n=2
輸入n,用最快的方法求該數列的第n項。
分析:在很多C語言教科書中講到遞歸函數的時候,都會用Fibonacci作爲例子。
因此很多程序員對這道題的遞歸解法非常熟悉,但....呵呵,你知道的。。

 

答案:

//20130128
#include <iostream>

using namespace std;

int main()
{
	int n = 40;
	int m[2] = {0, 1};
	int sum = 0;
	for (int i = 2; i <= n; ++i)
	{
		sum = m[0] + m[1];
		m[i%2] = sum;
	}
	cout<<sum<<endl;
	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章