假设一个楼梯有 N 阶台阶,人每次最多可以跨 M 阶,求总共的爬楼梯方案数。
package test;
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
int ladder = 4;
int maxJump = 2;
int i = calculateCount(ladder, maxJump);
System.out.println(i);
}
private static int calculateCount(int ladder, int maxJump) {
int jump = 0;
if (ladder == 0) {
return 1;
}
if (ladder >= maxJump) {
// 剩下的楼梯大于最大可跳跃数
for (int i = 1; i <= maxJump; i++) {
jump += calculateCount(ladder - i, maxJump);
}
} else {
// 剩下的楼梯不足最大可跳跃数
jump = calculateCount(ladder, ladder);
}
return jump;
}