递归特例-斐波那契数列

来源:互联网 发布:网络推广岗位说明书 编辑:程序博客网 时间:2024/05/07 18:55

特例:有N个台阶 一次只能走1个台阶或者2个台阶,请问有几种走法

 

int GetNum(int N)
{
   if(N>2)
    {
      return GetNum(N-1)+GetNum(N-2);
    }
    elseif(N==2)
      return 2;
    elseif(N==1)
      return 1;
    elseif(N==0)
      return 0;
}

 

 

可以将递归改为循环:

int GetNum1( int N)
{
    if (N<2)
      return 1;
    int v1=0,v2=1, cur =0;
    for ( int ix= 1; ix <= N; ++ix ) {
      cur = v1 + v2;
      v1 = v2;
      v2 = cur;
    }
    returncur;
}

原创粉丝点击