N个台阶,一次能够走一步或者两步,求走这n个台阶有多少种方法(递归和非递归实现)

一、递归实现code

<pre name="code" class="cpp">///递归方法
int Fibonacci(unsigned int N)
{
    if(N<=2)
        return N;
    else
        return Fibonacci(N-1)+Fibonacci(N-2);
}
 二、非递归实现 

///非递归方法
int Fibonacci1(unsigned int N)
{
    if(N<=2)
        return N;
    int fibtwo=2;
    int fibone=1;
    int fibN=0;
    for(unsigned int i=3;i<=N;i++)
    {
        fibN=fibone+fibtwo;
        fibone=fibtwo;
        fibtwo=fibN;
    }
    return fibN;
}