斐波拉契数列的非递归解法

对于递归的解法较为简单,但是可能造成栈溢出这种现象。

斐波拉契数列的第0项为0,第一项为1,以后的每一项是前两项的和。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Fibonacci(int n) 
{

if(n == 0)
return 0;
if(n == 1)
return 1;

//特殊项先判断返回

//fir记录前2项,sec记录前1项
int i = 2, fir = 0, sec = 1, sum = 0;
while(i++ <= n)
{
sum = fir + sec;
fir = sec;
sec = sum;
}
return sum;
}