用Python编写程序,假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
时间: 2024-06-13 22:07:42 浏览: 187
以下是Python编写的解决方案:
```python
def climbStairs(n):
if n == 1:
return 1
if n == 2:
return 2
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]
```
相关问题
使用python3.0x编写程序, 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
以下是使用Python3编写的解决方案:
```python
class Solution:
def climbStairs(self, n: int) -> int:
if n == 1:
return 1
elif n == 2:
return 2
else:
a, b = 1, 2
for i in range(3, n+1):
a, b = b, a+b
return b
```
python编写一个递归函数,假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢
以下是Python代码实现:
```python
def climbStairs(n):
if n == 1:
return 1
elif n == 2:
return 2
else:
return climbStairs(n-1) + climbStairs(n-2)
```
该函数接受一个整数n作为参数,表示需要爬到的楼梯阶数。根据题目要求,如果只有1阶或2阶,那么只有1种和2种不同的方法可以爬到楼顶。
如果阶数大于2,那么可以选择先爬1阶,剩下的阶数就是n-1,或者先爬2阶,剩下的阶数就是n-2。因此,能爬到楼顶的不同方法数就是这两种情况的和,即climbStairs(n-1) + climbStairs(n-2)。
最后,调用该函数并传入楼梯阶数n,即可得到能够到达楼顶的不同方法数。
阅读全文