计算小明爬楼梯的爬法数量
描述:15个台阶,小明一次最多爬三个,求有多少种爬法
1.递归
第15级台阶可以由14级爬1级、13级爬2级或12级爬3级得到;
而14、13、12级台阶均由下方的台阶爬来
(1)递归中止条件:到第一级台阶为止
(2)中止处理方法:人为定义1、2、3级台阶 的方法数
(3)提取重复逻辑:每一级台阶的方法数是前三级方法数之和
2.步骤
(1)定义函数
def climbStairs(n):
(2)中止处理方法
first3 = {1: 1, 2: 2, 3: 4}
if n in first3.keys():
return first3[n]
(3)重复逻辑
else:
return climb_stairs(n - 1) \
+ climb_stairs(n - 2) \
+ climb_stairs(n - 3)
即
def climb_stairs(n): #(1)定义函数
first3 = {1: 1, 2: 2, 3: 4}
if n in first3.keys():
return first3[n] #(2)中止处理方法
else:
return climb_stairs(n - 1) \
+ climb_stairs(n - 2) \
+ climb_stairs(n - 3) #(3)重复逻辑
注意:根据最新的pep8编码规范:“显示出来的公式总是要在二元运算符之前中断”
请不要像书上一样把“+”写在行尾