/*Gibt zu einem gegebenen Euro-Betrag Kleingeld aus, wobei die Anzahl der Münzen minimal ist. Daniel Orleth Matrikelnr.: 21199546 */ public class Wechselgeld { public static void main(String[] args) { int stueckelung[] = new int[9]; double betrag = 97.43; stueckelung = ermittleStueckelung(stueckelung, betrag); } public static int ermittleStueckzahl(double a, double b) { return (int) ((a - (a % b)) / b); } public static double ermittleRestbetrag(double euroBetrag, double muenzWert) { return euroBetrag % muenzWert; } public static int[] ermittleStueckelung(int stueckelung[], double euroBetrag) { int i = 0; double muenzWert[] = {10.0, 2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01}; while (euroBetrag > 0.01) { while (euroBetrag < muenzWert[i] && i < muenzWert.length) { i++; } stueckelung[i] = ermittleStueckzahl(euroBetrag, muenzWert[i]); euroBetrag = ermittleRestbetrag(euroBetrag, muenzWert[i]) + 0.001; //+0.001 berichtigt den Rundungsfehler } System.out.println ("Sie erhalten\n"); for (i = 0; i < stueckelung.length; ++i) { System.out.println(stueckelung[i] + " " + muenzWert[i] + "-Euro Münze(n)"); } return stueckelung; } }