/**
* Created by wangbin on 2022/1/11.
*/
#include <stdio.h>
#include <time.h>
int fib(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
int fib2(int n) {
int num1 = 1;
int num2 = 1;
int tmp = 0;
int i;
if (n <= 2) {
return 1;
} else {
for (i = 3; i <= n ; i++) {
tmp = num1 + num2;
num1 = num2;
num2 = tmp;
}
return tmp;
}
}
int main(void) {
double start, end;
start = (double) clock();
int res = fib2(20);
printf("fib(20)=%d\n", res);
end = (double) clock();
printf("times=%.4f\n", (end - start));
return 0;
}