8-5 【Python0006】爬楼梯
分数 10
作者 doublebest
单位 石家庄铁道大学
【题目描述】 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入楼梯台阶的数目n。
【输出格式】输出小朋友上这段楼梯的方法数。
【输入样例】15
【输出样例】5768
def climb_stairs(n):
"""
计算小朋友爬楼梯的方法数
参数:
n (int): 楼梯台阶的数目
返回:
int: 方法数
"""
if n <= 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
# 使用动态规划计算方法数
dp = \[0\] \* (n + 1)
dp\[1\] = 1
dp\[2\] = 2
dp\[3\] = 4
for i in range(4, n + 1):
dp\[i\] = dp\[i - 1\] + dp\[i - 2\] + dp\[i - 3\]
return dp\[n\]
\# 获取用户输入
n = int(input("请输入楼梯台阶的数目: "))
\# 调用函数计算方法数并输出结果
methods = climb_stairs(n)
print("小朋友上这段楼梯的方法数:", methods)
代码量 80行
时间 0.5小时