第35期-爬楼梯
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行: 定义函数 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,打印总共的爬法
对于此类数学习题,主要考察编辑者的逻辑能力
代码运行结果为:

浙公网安备 33010602011771号