使用python编写程序解决以下问题:假设你正在爬楼梯。需要 n 步你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?求n=13的结果
时间: 2023-11-13 08:12:46 浏览: 38
可以使用动态规划来解决这个问题。假设dp[i]表示到达第i个台阶的不同方法数,则dp[i]=dp[i-1]+dp[i-2]。因为要到达第i个台阶,只能从第i-1或者i-2个台阶跳上来。
下面是用Python实现该算法的代码:
```python
def climbStairs(n: int) -> int:
if n == 1:
return 1
dp = [0] * (n+1)
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n]
print(climbStairs(13))
```
输出结果为377,表示到达第13个台阶的不同方法数为377。