#include <stdio.h>
#include <time.h>
#define N 41
long fib1(int n){
if(n <= 2)
return 1;
return fib1(n - 1) + fib1(n - 2);
}
long fib2(int n){
long result;
long previous_result;
long next_older_result;
result = previous_result = 1;
while(n > 2){
n -= 1;
next_older_result = previous_result;
previous_result = result;
result = previous_result + next_older_result;
}
return result;
}
int main(void){
clock_t b1, e1;
clock_t b2, e2;
b1 = clock();
printf("The value of fib1(%d) = %ld\n", N, fib1(N));
e1 = clock();
printf("time: %d\n", (int)(e1 - b1));
b2 = clock();
printf("The value of fib2(%d) = %ld\n", N, fib2(N));
e2 = clock();
printf("time: %d\n", (int)(e2 - b2));
return 0;
}