3.29

时长:半个小时左右

题目:

8-5 【Python0006】爬楼梯
分数 10
作者 doublebest
单位 石家庄铁道大学

【题目描述】 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入楼梯台阶的数目n。
【输出格式】输出小朋友上这段楼梯的方法数。
【输入样例】15
【输出样例】5768

代码量:

def count_ways_to_climb_stairs(n):
# 处理基础情况
if n <= 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4

# 初始化动态规划数组
ways = [0] * (n + 1)
ways[1], ways[2], ways[3] = 1, 2, 4

# 从第4个台阶开始计算
for i in range(4, n + 1):
ways[i] = ways[i - 1] + ways[i - 2] + ways[i - 3]

return ways[n]

n = int(input("请输入楼梯的台阶数n(n>1):"))
result = count_ways_to_climb_stairs(n)
print(f"上到{n}个台阶的方法数为:{result}")
posted @ 2024-06-19 17:40  孙锺鸣  阅读(1)  评论(0编辑  收藏  举报