上台阶问题:有n级台阶,每步可以走一级或者两级,问有多少种不同的走法?
递归的思想:先做一步,整个问题是否变成与之前形式相同,但规模更小的问题?如果是,就可以采用递归。
n级台阶,先走一步,那么分为两种情况:第一步走一级,或者第一步走两级。第一步走一级就转换为求(n-1)级台阶的问题,第一步走两级就转换为走
(n-2)级台阶的问题
def ways(n): if n == 1: return 1 elif n == 2: return 2 else: return ways(n-1) + ways(n-2) print(ways(10))
原文:https://www.cnblogs.com/lichengmin/p/14503000.html