# 第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
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,打印总共的爬法
对于此类数学习题,主要考察编辑者的逻辑能力
代码运行结果为:
# 4 视频解析
高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码