计算小明爬楼梯的爬法数量(python程序设计实验9)

计算小明爬楼梯的爬法数量

描述: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编码规范:“显示出来的公式总是要在二元运算符之前中断”

请不要像书上一样把“+”写在行尾

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Grayson Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值