楼梯问题和斐波那契数列(Fibonacci Sequence)

假设一个楼梯有 N 阶台阶,人每次最多能够跨 M 阶。例如楼梯总共有3个台阶,人每次最多跨2个台阶,也就是说人每次能够走1个,也能够走2个,但最多不会超过2个,那么楼梯总共有这么几种走法:php

咱们这样看面试

1台阶楼梯走法为1,算法

2台阶楼梯走法为2,code

3台阶楼梯走法为3,ci

4台阶楼梯走法为5,io

5台阶楼梯走法为8,function

咱们能够得出规律,这实际上是一个斐波那契数列,就很容易解决了date

印象中有次面试被问到这个问题,因此在这里分享下分享

算法以下co

<?php

/*
 * 2015/3/4 update
 * 1 2 3 5 8 13
 */
function fibonacci($n) 
{
    if ($n == 1) {
        return 1;
    }

    if ($n == 2) {
        return 2;
    }
    return fibonacci($n - 1) + fibonacci($n - 2);
}

for ($index = 1; $index < 10; $index++) {
    echo fibonacci($index)."\n";
}
相关文章
相关标签/搜索