題目:定義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;
}