假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?用Java编写
时间: 2023-11-13 14:18:48 浏览: 93
java代码-使用java解决有10级台阶,每次可以走一阶或两阶,有多少种走法的源代码
可以使用递归或动态规划来解决这个问题。以下是使用动态规划的Java代码:
```java
public class ClimbingStairs {
public int climbStairs(int n) {
if (n <= 2) {
return n;
}
int[] dp = new int[n + 1];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
}
```
在这个代码中,我们使用一个数组dp来存储每一步的方法数。dp[i]表示到达第i步的方法数。我们初始化dp[1]为1,dp[2]为2。然后我们使用for循环从3到n,每次计算dp[i]的值。dp[i]的值等于dp[i-1]和dp[i-2]之和,因为我们可以从dp[i-1]和dp[i-2]到达dp[i]。最后返回dp[n]的值,即到达楼顶的方法数。
阅读全文