// See http://www.ritsumei.ac.jp/se/re/izumilab/lecture/21linux/index.html // See http://www.ritsumei.ac.jp/se/re/izumilab/lecture/progtips/fibo.c.txt #include #include long count=0, x_completed_max=-1; long fibo(long x){ long y; if (x<=0) y=0; else if (x==1) y=1; else y=fibo(x-1)+fibo(x-2); // for logging count++; if (x>x_completed_max) { x_completed_max=x; printf("%ld:fibo(%ld) = %ld\n",count,x,y); fflush(stdout); } return y; } int main(int argc, char **argv){ long x,y; if (argc<2) { fprintf(stderr,"usage: %s number\n",argv[0]); return -1; } x=atol(argv[1]); y=fibo(x); printf("Fibonacci number of %ld is %ld.\n",x,y); return 0; }