斐波拉契数列 :1、1、2、3、5、8、13、21、34…… 经过查资料掌握了三种斐波拉契数列的计算方法:
1.使用递归,也是最容易理解的,但是在递归的过程中有重复计算项导致计算效率极低,而且消耗大,具体代码:
int fibonacci(int index)
{
if(index <= 2) return 1;
return fibonacci(index -1) + fibonacci(index - 2)
}
在这个过程中调用了两层递归,有很多重复计算项;
2.用for循环,用三个临时变量来保存每一次循环的计算结果:
int fibonacci(int index)
{
int a = 0;
int b = 1;
int c = 1;
for (int i = 1; i < index; i++)
{
c = a + b;
a = b;
b = c;
}
return c;
}
3.对递归进行改进:
int fibonacci(int index, int a0, int a1)
{
if (index == 0) return a0;
if (index == 1) return a1;
else
return fibonacci(--index, a1, a0 + a1);
}
也是有两个临时变量a0和a1来保存每一步的计算结果,能够较快的计算出结果。