使用Java解决输入两个正整数m,n代表每层阶数以及要去到的楼层每次只能走1级或2级台阶
时间: 2024-01-22 21:20:50 浏览: 64
可以使用递归的方式解决这个问题。假设我们要到达第n层楼梯,那么我们可以从第n-1层楼梯走一步到达,或者从第n-2层楼梯走两步到达。因此,到达第n层楼梯的方法数为到达第n-1层楼梯的方法数加上到达第n-2层楼梯的方法数。
下面是使用Java实现的代码:
```java
public class Stairs {
public static int climbStairs(int m, int n) {
if (m > n) {
return 0;
} else if (m == n) {
return 1;
} else {
return climbStairs(m+1, n) + climbStairs(m+2, n);
}
}
public static void main(String[] args) {
int m = 1;
int n = 3;
int ways = climbStairs(m, n);
System.out.println(ways); // 输出结果为 2
}
}
```
这个代码中,`climbStairs`方法接受两个参数,分别表示当前在第几层楼梯以及要到达的楼层数。如果当前所在的楼层已经超过了要到达的楼层数,那么返回0;如果当前所在的楼层已经等于要到达的楼层数,那么返回1;否则,递归调用`climbStairs`方法计算到达第n-1层楼梯和到达第n-2层楼梯的方法数,并相加返回。在`main`方法中,我们测试了m=1,n=3的情况,输出结果为2,表示从第1层楼梯到第3层楼梯有两种方法:一步一步走或者一次走两步。
阅读全文