编辑代码

public class Main {
    public static void main(String[] args) {
        int n = 10; // 台阶的数量
        int result = recursiveStep(n);
        System.out.println("(递归)共有 " + result + " 种走法。");
        int result2 = iterativeStep(n);
        System.out.println("(递推)共有 " + result2 + " 种走法。");
    }

     static int recursiveStep(int n) {
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            return 2;
        } else {
            return recursiveStep(n - 1) + recursiveStep(n - 2);
        }
    }

     static int iterativeStep(int n) {
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            return 2;
        } else {
            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];
        }
    }
}