编辑代码

#include<stdio.h>

//递归
int climbStairsRecursion(int n){
	if (n == 2 || n == 1)
		return n;
    else
        return climbStairsRecursion(n-1) + climbStairsRecursion(n-2);
}

//递推
int climbStairsIterative(int n) {
    if (n <= 1) {
        return 1;
    }

    int prev1 = 1, prev2 = 1;
    int current = 0;
    
    for (int i = 2; i <= n; i++) {
        current = prev1 + prev2;
        prev2 = prev1;
        prev1 = current;
    }

    return current;
}

int main() {
    int n = 5;
    int t = 5;

    int ways1 = climbStairsRecursion(n);//递归
    printf("Ways to climb %d stairs using recursion: %d\n", n, ways1);

    
    int ways2 = climbStairsIterative(t);//递推
    printf("Ways to climb %d stairs using iteration: %d\n", t, ways2);

    return 0;
}