PROGRAM CashBills (Input,Output);

(* David Wills
   CSci 3102
   Winter 1994    *)

(* This program prompts the user for an amount of dollars and then
   computes the minimum number of U.S. bills needed to equal that
   amount.  *)


VAR
   Sum : Integer;      (* Dollars amount, user input *)
   Bills : Integer;    (* Number of bills of each denomination *)
   LeftOver : Integer; (* Dollar amount left over after subtracting
                          bills of higher denomination *)

BEGIN
   Writeln('This program calculates the minimum number of bills');
   Writeln('that add up to a user-specified dollar amount.');
   Writeln('Enter a dollar amount:');
   Readln(Sum);

   LeftOver := Sum;

   Bills := LeftOver DIV 100;
   LeftOver := LeftOver MOD 100;
   Writeln('Number of hundreds = ',Bills);

   Bills := LeftOver DIV 50;
   LeftOver := LeftOver MOD 50;
   Writeln('Number of fifties = ',Bills);

   Bills := LeftOver DIV 20;
   LeftOver := LeftOver MOD 20;
   Writeln('Number of twenties = ',Bills);

   Bills := LeftOver DIV 10;
   LeftOver := LeftOver MOD 10;
   Writeln('Number of tens = ',Bills);

   Bills := LeftOver DIV 5;
   LeftOver := LeftOver MOD 5;
   Writeln('Number of fives = ',Bills);

   Writeln('Number of ones = ',LeftOver);
END.
