用栈写出Fibonacci的递归和不递归程序

来源:互联网 发布:虚拟gps定位软件 ios 编辑:程序博客网 时间:2024/05/23 19:28
方法函数:
递归:
intfib(int n)
{
   if( n<=1 )return n;
   else return fib(n-1)+fib(n-2);
}


非递归:
intfib(int n)
{
   int f1=0,f2=1,i,temp;
   for(i=0;i<n;++i)
   {
      temp=f1;f1=f2;f2=temp+f1;
   }
   return f1;
}

 

测试程序:
#include <iostream>
using namespacestd;

int fib(int n)
{
   int f1=0,f2=1,i,temp;
   for(i=0;i<n;++i)
   {
      temp=f1;
      f1=f2;
       f2=temp+f1;
   }
   return f1;         
}

int main()
{
    int n=0;
    int t=0;
    cout<<"请输入n"<<endl;
    cin>>n;
    t=fib(n);
   cout<<t;
   return 0;
}
运行演示:用栈写出Fibonacci的递归和不递归程序