home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / pcwk_09_96.iso / demo / wgelectr / pk51demo / files.2 / EXAMPLES / FIB / FIB.C < prev    next >
C/C++ Source or Header  |  1995-08-30  |  872b  |  40 lines

  1. /*------------------------------------------------------------------------------
  2. FIB.C:  A small recursive program that calculates Fibonacci numbers.
  3.   
  4. This program was originally featured in the "Embedded Systems Magazine"
  5. April 1989
  6. ------------------------------------------------------------------------------*/
  7.  
  8. #include <stdio.h>
  9. #include <reg51.h>
  10.  
  11. unsigned fib (int n) reentrant
  12.   {
  13.     if (n <= 2) return 1;
  14.     return fib(n-1) + fib(n-2);
  15.   }
  16.  
  17. unsigned results[11];
  18.  
  19. main()
  20.   {
  21.     int loop;
  22.  
  23.   SCON = 0x52;    /* SCON */
  24.   TMOD = 0x20;    /* TMOD */
  25.   TCON = 0x69;    /* TCON */
  26.   TH1 =  0xf3;    /* TH1 */
  27.  
  28.     for (loop=1; loop < 10; loop++)
  29.       {
  30.         results[loop] = fib(loop);
  31.       }
  32.  
  33.     for (loop=1; loop < 10; loop++)
  34.       {
  35.         printf("fib(%d) = %d\n",loop,results[loop]);
  36.       }
  37.     while (1);
  38.   }
  39.  
  40.