编辑代码

#include <stdio.h>

// 递归实现
int recursion(int n) {
    if(n <= 0) {
        return 0;
    }
    else if(n == 1) {
        return 1;
    }
    else if(n == 2) {
        return 2;
    }
    else {
        return recursion(n-1) + recursion(n-2);
    }
}

// 递推实现
int iteration(int n) {
    if(n <= 0) {
        return 0;
    }
    else if(n == 1) {
        return 1;
    }
    else if(n == 2) {
        return 2;
    }
    else {
        int a = 1, b = 2, c;
        for(int i = 3; i <= n; i++) {
            c = a + b;
            a = b;
            b = c;
        }
        return b;
    }
}

int main() {
    int n;
    printf("输入台阶数:");
    scanf("%d", &n);
    printf("递归实现 - 不同走法的数量:%d\n", recursion(n));
    printf("递推实现 - 不同走法的数量:%d\n", iteration(n));
    return 0;
}