斐波那契数列的表达式:



F(1)=1


F(2)=1



F(n)=F(n-1)+F(n-2)    (n>2)

递归算法:时间复杂度O(2^n)

int recursive_method(int n)
{
if (n == 1 || n == 2)
return 1;
else
return recursive_method(n - 1) + recursive_method(n - 2);
}


非递归算法:时间复杂度O(n)

int non_recursive_method(int n)  
{
int p = 1;
int q = 1;
int tmp;
if (n == 1 || n == 2)
return 1;
else{
for(int i = 3; i < n; i++)
{
tmp = p;//本次循环的F(n-2)
p = q; //p用来存储F(n-1),下一次循环就变成了F(n-2)

q = tmp + q; //F(n)=F(n-1)+F(n-2)
}
return q; //q储存的为最新的F(n)
}
}