# 第35期-爬楼梯

Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 1 问题描述

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
输入阶数n,输出爬法数量

# 2 解题思路

从整体看,可能一时不知道该如何完成
当爬到n阶时,可以是从n-1爬上来,也可以是n-2爬上来
当只有一阶时,只有一种爬法
当n=2时,有两种爬法
其他情况下,n阶时,由于只有两者爬上来的可能性,所以只需计算n-1阶爬法以及n-2阶爬法即可,递归

# 3 解题方法

def Climb(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    else:
        return Climb(n - 1) + Climb(n - 2)


n = int(input('请输入楼层'))
print(f'一共有{Climb(n)}种爬法')
1
2
3
4
5
6
7
8
9
10
11

第1行: 定义函数 Climb, 传入参数 n
第2-3行: 当n=1时,返回函数值为1
第4-5行: 当n=2时,返回函数值为2
第6-7行: 其他情况下,返回函数值Climb(n - 1) + Climb(n - 2),即计算n-1层以及n-2层爬法
第10-11行: input函数输入层数并赋值给n,打印总共的爬法

对于此类数学习题,主要考察编辑者的逻辑能力

代码运行结果为:
image.png

# 4 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM