#include <stdio.h>
#include <time.h>
// 递归实现
long long fib_recursive(int n) {
if (n == 1 || n == 2) return 1;
return fib_recursive(n - 1) + fib_recursive(n - 2);
}
// 迭代实现(从1开始)
long long fib_iterative(int n) {
if (n == 1 || n == 2) return 1;
long long a = 1, b = 1, c;
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int n = 40; // 测试较大的n值
clock_t start, end;
double time_used;
// 测试递归方法
long long result_recursive = fib_recursive(n);
time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("递归方法: F(%d) = %lld, 耗时: %f 秒\n", n
, result_recursive
, time_used
);
// 测试迭代方法
long long result_iterative = fib_iterative(n);
time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("迭代方法: F(%d) = %lld, 耗时: %f 秒\n", n
, result_iterative
, time_used
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiAKLy8g6YCS5b2S5a6e546wCmxvbmcgbG9uZyBmaWJfcmVjdXJzaXZlKGludCBuKSB7CiAgICBpZiAobiA9PSAxIHx8IG4gPT0gMikgcmV0dXJuIDE7CiAgICByZXR1cm4gZmliX3JlY3Vyc2l2ZShuIC0gMSkgKyBmaWJfcmVjdXJzaXZlKG4gLSAyKTsKfQogCi8vIOi/reS7o+WunueOsO+8iOS7jjHlvIDlp4vvvIkKbG9uZyBsb25nIGZpYl9pdGVyYXRpdmUoaW50IG4pIHsKICAgIGlmIChuID09IDEgfHwgbiA9PSAyKSByZXR1cm4gMTsKICAgIGxvbmcgbG9uZyBhID0gMSwgYiA9IDEsIGM7CiAgICBmb3IgKGludCBpID0gMzsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjID0gYSArIGI7CiAgICAgICAgYSA9IGI7CiAgICAgICAgYiA9IGM7CiAgICB9CiAgICByZXR1cm4gYjsKfQogCmludCBtYWluKCkgewogICAgaW50IG4gPSA0MDsgLy8g5rWL6K+V6L6D5aSn55qEbuWAvAogICAgY2xvY2tfdCBzdGFydCwgZW5kOwogICAgZG91YmxlIHRpbWVfdXNlZDsKICAgIC8vIOa1i+ivlemAkuW9kuaWueazlQogICAgc3RhcnQgPSBjbG9jaygpOwogICAgbG9uZyBsb25nIHJlc3VsdF9yZWN1cnNpdmUgPSBmaWJfcmVjdXJzaXZlKG4pOwogICAgZW5kID0gY2xvY2soKTsKICAgIHRpbWVfdXNlZCA9ICgoZG91YmxlKShlbmQgLSBzdGFydCkpIC8gQ0xPQ0tTX1BFUl9TRUM7CiAgICBwcmludGYoIumAkuW9kuaWueazlTogRiglZCkgPSAlbGxkLCDogJfml7Y6ICVmIOenklxuIiwgbiwgcmVzdWx0X3JlY3Vyc2l2ZSwgdGltZV91c2VkKTsKICAgIAogICAgLy8g5rWL6K+V6L+t5Luj5pa55rOVCiAgICBzdGFydCA9IGNsb2NrKCk7CiAgICBsb25nIGxvbmcgcmVzdWx0X2l0ZXJhdGl2ZSA9IGZpYl9pdGVyYXRpdmUobik7CiAgICBlbmQgPSBjbG9jaygpOwogICAgdGltZV91c2VkID0gKChkb3VibGUpKGVuZCAtIHN0YXJ0KSkgLyBDTE9DS1NfUEVSX1NFQzsKICAgIHByaW50Zigi6L+t5Luj5pa55rOVOiBGKCVkKSA9ICVsbGQsIOiAl+aXtjogJWYg56eSXG4iLCBuLCByZXN1bHRfaXRlcmF0aXZlLCB0aW1lX3VzZWQpOwogICAgcmV0dXJuIDA7Cn0=