home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / xc212os2.zip / SAMPLES / SIMPLE / fact.mod < prev    next >
Text File  |  1994-07-22  |  642b  |  36 lines

  1. (*
  2.  * Written by Andrew Cadach
  3.  *
  4.  * Recursive (extremely uneficient:-) implementation of factorial
  5.  *
  6.  *                     n * (n-1)!, n <> 0
  7.  * By definition, n! = 
  8.  *                     1, n = 0
  9.  *
  10.  *)
  11.  
  12. MODULE fact;
  13.  
  14. IMPORT InOut;
  15.  
  16. VAR i, r: CARDINAL;
  17.  
  18. PROCEDURE f (n: CARDINAL): CARDINAL;
  19. BEGIN
  20.   IF n=0 THEN RETURN 1 END;
  21.   RETURN n * f (n-1);
  22. END f;
  23.  
  24. BEGIN
  25.   i := 0;
  26.   REPEAT
  27.     r := f(i);
  28.     InOut.WriteString ("The factorial of ");
  29.     InOut.WriteCard (i, 2);
  30.     InOut.WriteString (" is ");
  31.     InOut.WriteCard (r, 0);
  32.     InOut.WriteLn;
  33.     INC (i)
  34.   UNTIL r >= MAX (CARDINAL) / i;
  35. END fact.
  36.