//
// timing.c
//
//
// Created by Jianwei Liao (for experiemnt 1)
// Copyright (c) Southwest University. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/time.h>
#define MILLION 1000000
int fib_rec(int n){
if(n==1||n==2){
return 1;
}
return fib_rec(n-1) + fib_rec(n-2);
}
int fib_nonrec(int n){
int a=0,b=1,i,t;
if(n==0||n==1)
return 1;
else
for(i=1;i<n;i++){
t=a+b;
a=b;
b=t;
}
return t;
}
/* should be called at the begining */
static struct timeval time_start(){
struct timeval tv;
gettimeofday(&tv, NULL);
return tv;
}
/* timediff in mili-seconds */
static long msdiff(struct timeval start){
struct timeval tv;
gettimeofday(&tv, NULL);
return ((MILLION*(tv.tv_sec-start.tv_sec)+tv.tv_usec-start.tv_usec)/1000);
}
int main(int argc, char *argv[])
{
struct timeval p1;
int result;
/* get the start point */
int n;
//scanf(n);
p1 = time_start();
result=fib_rec(40);
/Òeep(2);
/* print out the consumed time in ms */
printf("Value is %d, Comsumed Time:%ld ms\n",result,msdiff(p1));
return EXIT_SUCCESS;
}