Fibonacci数列
格式:1 1 2 3 5 8 13 .........
话不多说先看代码:
1.递归排序
long long f(int n)
{
if(n==1)
return 1;
else if(n==2)
return 1;
else
return (f(n-1)+f(n-2));
}
缺点如下:
1>.每调用一次该函数,需要在栈中创建空间来保存函数参数、返回地址和临时变量。
2>.数据每次出栈入栈时需要消耗时间。
3>.如果数据多次入栈但是未出栈,很可能造成栈溢出
4>.递归时,重复计算函数值。如下图所示:
2.非递归排序
long long fib(int n)
{
int fib1=0;
int fib2=1;
int fib3=n;
for(int i=2;i<=n;i++)
{
fib3=fib1+fib2;
fib1=fib2;
fib2=fib3;
}
return fib3;
}
这样的话上述的问题都不存在了。