题目描述:求一个斐波那契数列(Fibonacci)的第 n 项。
分析:不要用递归,直接用循环,因为递归的效率太低,会做很多重复的运算。

long long Fibonacci_Solution2(unsigned n)
{
int result[2] = {0, 1};
if(n < 2)
return result[n];
long long fibNMinusOne = 1;
long long fibNMinusTwo = 0;
long long fibN = 0;
for(unsigned int i = 2; i <= n; ++ i)
{
fibN = fibNMinusOne + fibNMinusTwo;
fibNMinusTwo = fibNMinusOne;
fibNMinusOne = fibN;
}
return fibN;
}



一般情况下,面试官很少会让面试者写出这种思想的代码,因此这种解法了解它的思想就可以了。
本文出自 “11408774” 博客,请务必保留此出处http://11418774.blog.51cto.com/11408774/1795986
原文地址:http://11418774.blog.51cto.com/11408774/1795986