问题描述:一个人爬楼梯,只可以一步走一层或一步走两层,共多少种走法?
输入:楼梯总层数
输出:有几种走法
解:
这个问题,是一个递归问题。
1.楼梯总层数为1,有一种走法,一步走一层。
2.楼梯总层数为2,有两种走法:
1)一步走一层,走两步
2)一步走两层,走一步
3.楼梯总层数为n的走法有多少种呢?
走到n层只有两种可能:
1)在第n-1层往上走1步(一步一层)到第n层
2)在第n-2层往上走1步(一步两层)到第n层
所以:
楼梯总层数为n的走法=楼梯总层数为n-1的走法+楼梯总层数为n-2的走法
类似于斐波那契数列,只不过第0层是0种走法。
注:0层0种,1层1种,2层2种,3层=2层+1层,4层=3层+2层,…
javascript代码:
function step(n){