//Recursion: Program - Make Changes import java.io.*; import java.util.*; class mymakeChange { static BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); static int counter=0; public static void main(String[] args) throws IOException { int input; int[] numCoin; int[] valueCoin ; valueCoin = new int[5]; valueCoin[0]= 50; valueCoin[1]= 25; valueCoin[2]= 10; valueCoin[3]= 5; valueCoin[4]= 1; numCoin = new int[5]; System.out.print("please enter the amount: "); input=Integer.parseInt(keyboard.readLine()); System.out.println("Amout is "+input); System.out.println("Number Halves Quarters Dimes Nickels Pennies"); System.out.println("-------------------------------------------------"); my_Change(input,0, numCoin, valueCoin); } public static void my_Change(int input, int level, int[] numCoin, int[] valueCoin) { int i; if (level==4) { numCoin[level]=input; counter++; System.out.println( counter+" "+numCoin[0]+" "+numCoin[1]+" "+numCoin[2]+" "+numCoin[3]+" "+numCoin[4]); return; } for (i=0;i<=input/valueCoin[level];i++) { numCoin[level]=i; my_Change(input-valueCoin[level]*i, level+1, numCoin,valueCoin ); } } }