题目描述
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
逻辑思路
最开始简单概括一下逻辑:爬楼梯总次数=不同的迈脚的次数(可以通过爬多少次2阶算出)*在哪个位置爬2阶
迈多少次脚(爬多少次2阶)
n个台阶,只看选1阶或选2阶的数量,可以有n/2+1种选法。
也可以说,因为不选2就是选1,直接看可以选多少不同2的次数决定了有多少选法,即总共需要迈多少次脚才能爬完楼梯。
比如说爬5阶台阶,你可以选只爬一次2阶,两次2阶或者一次都不爬,总共有3种迈脚的方法,即[5/2+1]
迈脚情况分为
(1)1 1 1 1 1
(2)1 1 1 2
(3)1 2 2
但迈脚情况不代表最后的组合结果
在哪爬2阶
迈几次脚还需要结合在哪里迈2阶,才能得到最后的爬楼梯方法。在不同位置爬2阶,也会产生不一样的上楼方法。
也就是说现在得到了一共要迈多少次脚,然后要选出在第几次迈脚迈2阶。也就是,在迈脚的次数n里,选出m次迈2阶的位置。当然你选择在哪几次迈脚迈1阶也是一样的,毕竟 C n m = C n n − m \qquad\mathrm{C}_n^m=\qquad\mathrm{C}_n^{n-m} Cn