fib.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. #include <LEDA/basic.h>
  2. #include <LEDA/integer.h>
  3. integer fibonacci(integer n, char* int_name)
  4. {
  5.   integer a=1;
  6.   integer b=1;
  7.   integer c;
  8.   integer i=1;
  9.   float T = used_time();
  10.   while(i<n) 
  11.   { //cout << "Fib " <<i<< " = " << b << endl; // |b| is $Fib_i$
  12.     c = a+b;
  13.     a = b;
  14.     b = c;
  15.     i++;
  16.    }
  17.   integer fib = b;
  18.   cout << string("%s: %6.3f sec",int_name,used_time(T)) << endl;
  19.   while(i>0) 
  20.   { //cout << "Fib " <<i<< " = " << b << endl;
  21.     c = b-a;
  22.     b = a;
  23.     a = c;
  24.     i--;
  25.    }
  26.   cout << string("%s: %6.3f sec",int_name,used_time(T)) << endl;
  27.   newline;
  28.   if (c != 0) cerr << string("ERROR in FIB: c = ") << c << endl;
  29.   return fib;
  30. }
  31. main()
  32. {
  33.   integer n = read_int("n= ");
  34.   integer fib  = fibonacci(n,"integer    ");
  35.   cout << "fib(n) = " << fib << endl;
  36.   return 0;
  37. }