分析】这是一典型的排列组合问题, 但若用排列组合来分析则演变为纯数学问题,则无法用递归的方法来解决。能使用递归的方法的模型的规律是问题的解决方法与问题的规模无关,因此可以先从数字的规律入手:
假设共有i阶台阶, 走完所有的台阶有n种走法,则:
1. i = 1时, n = 1; {1}
2. i = 2, n = 2; {[1, 1], [2]}
3. i = 3, n = 3; {[1, 1, 1], [1, 2], [2, 1]}
4. i = 4, n = 5; {[1, 1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2]}
5. i = 5, n = 8; ............
.........................................
.........................................
因此,我们可以得到规律
f(n) = f(n-1) + f(n-2) (n>=3), 从而得到递归算法。
转载于:https://blog.51cto.com/2274594/422225