class Change { private static int[] c; public static int change(int amount, int[] coins){ c = coins; return change(amount,0); } private static int change(int amount, int j) { if (amount == 0) return(0); if (j == c.length) return(Integer.MAX_VALUE); if (amount < c[j]) return(change(amount,j+1)); else { int c1 = change(amount,j+1); int c2 = 1 + change(amount-c[j],j); if (c1 < c2) return(c1); else return(c2); } } }