编辑代码

#include<iostream>

using namespace std;

// 1. 台阶问题
int climbStairsRecursive(int n) {
    if (n <= 1) {
        return 1;
    }
    return climbStairsRecursive(n-1) + climbStairsRecursive(n-2);
}

int climbStairsIterative(int n) {
    if (n <= 1) {
        return 1;
    }
    int a = 1, b = 1;
    for (int i = 2; i <= n; ++i) {
        int temp = b;
        b = a + b;
        a = temp;
    }
    return b;
}

// 2. 阶乘问题
int factorialRecursive(int n) {
    if (n == 0 || n == 1) {
        return 1;
    }
    return n * factorialRecursive(n-1);
}

int factorialIterative(int n) {
    int result = 1;
    for (int i = 1; i <= n; ++i) {
        result *= i;
    }
    return result;
}


// 测试用例
int main() {
    // 台阶问题
    cout << "Climb Stairs Recursive: " << climbStairsRecursive(5) << endl;
    cout << "Climb Stairs Iterative: " << climbStairsIterative(5) << endl;
    cout << "Climb Stairs Recursive: " << climbStairsRecursive(8) << endl;
    cout << "Climb Stairs Iterative: " << climbStairsIterative(8) << endl;

    // 阶乘问题
    cout << "Factorial Recursive: " << factorialRecursive(6) << endl;
    cout << "Factorial Iterative: " << factorialIterative(6) << endl;
    cout << "Factorial Recursive: " << factorialRecursive(5) << endl;
    cout << "Factorial Iterative: " << factorialIterative(5) << endl;


    return 0;
}