题目:定义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;
}