1. 程式人生 > >N個臺階,一次可以走一步或者兩步,求走這n個臺階有多少種方法(遞迴和非遞迴實現)

N個臺階,一次可以走一步或者兩步,求走這n個臺階有多少種方法(遞迴和非遞迴實現)

1、遞迴實現

<pre name="code" class="cpp">///遞迴方法
int Fibonacci(unsigned int N)
{
    if(N<=2)
        return N;
    else
        return Fibonacci(N-1)+Fibonacci(N-2);
}
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;
}