编辑代码

#include <stdio.h>
#include <time.h>

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

// 递推实现
int iterativeFibonacci(int n) {
    if (n <= 1) {
        return n;
    }

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

    return current;
}

int main() {
    int n = 40; // Adjust the value for meaningful comparison

    // 记录递归实现的时间
    clock_t start = clock();
    int recursiveResult = recursiveFibonacci(n);
    clock_t end = clock();
    printf("Recursive Fibonacci: %d\n", recursiveResult);
    printf("Recursive Time: %f seconds\n", ((double)end - start) / CLOCKS_PER_SEC);

    // 记录递推实现的时间
    start = clock();
    int iterativeResult = iterativeFibonacci(n);
    end = clock();
    printf("Iterative Fibonacci: %d\n", iterativeResult);
    printf("Iterative Time: %f seconds\n", ((double)end - start) / CLOCKS_PER_SEC);

    return 0;
}