假设你正在爬楼梯。需要 n 阶你才能到达楼顶。(n是正整数)每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 输入 第一行输入阶数n (1<=n<=20) 输出 输出总共多少种走法
时间: 2023-11-13 15:08:56 浏览: 141
问题描述:有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
5星 · 资源好评率100%
这其实是一个斐波那契数列的应用,可以用递归或动态规划来解决。以下是使用动态规划的示例代码:
```python
n = int(input())
dp = [0] * (n+1)
dp[0] = 1
dp[1] = 1
for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]
print(dp[n])
```
解释一下代码:
首先输入台阶数n,然后创建一个长度为n+1的数组dp,用于存储每个台阶的走法数量,dp[0]初始化为1(因为不需要爬),dp[1]也初始化为1(只有一种走法,就是直接爬上去)。
从第二个台阶开始,每个台阶的走法数量等于上一个台阶和上上个台阶走法数量之和,即dp[i] = dp[i-1] + dp[i-2]。
最后输出dp[n],即为爬到n阶台阶的走法数量。
阅读全文