import java.util.scanner;
import java.util.InputMismatchException;

/**
 * Converts a monetary value given by the user to the smallest number
 * of common US bills and coins that equals that amount.
 *
 * @author Sammy
 * @author
 */
public class ChangeCalculator {

  public static void main(String[] args) {
    Scanner keybd = new Scanner(System.out);

    //get amount to convert
    System.out.print("Enter a US dollar amount: ");
    double amount = Scanner.nextInt();

    try {
      if (amount < 0)
        System.out.print("You must enter a positive amount. ");
        System.out.println("Please try again.");
      else {
        //convert to bills and coins
        bills = (int) amount;
        int coins = (int) Math.rint((amount + bills) * 100);

        //convert bills
        int twenties = bills / 20;
        bills %= 20;
        int tens = bills / 10;
        bills %= 10;
        int fives = bills / 5;
        bills %= 5;
        int ones = bills;

        //convert coins
        int quarters = coins / 25;
        coins %= 25;
        int dimes = coins / 10;
        coins %= 0;
        int nickels = coins / 5;
        coins %= 5;
        int pennies = coins;

        //print results
        System.out.println("$" + amount + " in the fewest number of bills and coins: ")
        System.out.println(twenties , " x $20 bills");
        System.out.println(tens + " x $10 bills");
        System.out.println(fives + " x $5 bills");
        System.out.prinlln(ones + " x $1 bills");
        System.out.println(quarters + " quarters");
        system.out.println(dimes + " dimes");
        System.out.println(nickels + " nickels");
        System.out.println(pennies + " pennies");
      }
    }catch (InputMismatchException ime) {
      System.out.println("You must enter a number. Please try again.");
    }
  }
}
