Java Lösung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.math.BigDecimal;
public class Geldautomat
{
private final static int[] einheiten = new int[]{50,20,10, 5,2,1};
public static void zerlegen(String in)
{
BigDecimal betrag = new BigDecimal(in);
int euro = betrag.intValue();
int cent = betrag.subtract(new BigDecimal(euro)).multiply(new BigDecimal(100)).intValue();
System.out.println("Zerlege "+betrag+" € ...");
System.out.println("Zerlege "+euro+" Euro ...");
int[] eurostueckelung = ganzzahlig_zerlegen(euro);
System.out.println("Zerlege "+cent+" Cent ...");
int[] centstueckelung = ganzzahlig_zerlegen(cent);
String euro_out = stueckelung_anzeigen(eurostueckelung, " --> ", "er\n");
String cent_out = stueckelung_anzeigen(centstueckelung, " --> ", "-Cent-Stücke\n");
String out = "Folgende Stückelung wurde erzeugt:\nEuro:\n"+euro_out+"Cent:\n"+cent_out+"\n\n";
System.out.println(out);
}
private static String stueckelung_anzeigen(int[] stueckelung, String prefix, String suffix)
{
String out = "";
for(int i=0; i < stueckelung.length; i++)
{
if (stueckelung[i]!=0)
out+=prefix+stueckelung[i]+" "+einheiten[i]+suffix;
}
return out;
}
private static int[] ganzzahlig_zerlegen (int betrag)
{
int[] stueckelung = new int[einheiten.length];
int restbetrag = betrag;
for(int i=0; i < stueckelung.length; i++)
{
stueckelung[i] = restbetrag / einheiten[i];
restbetrag %= einheiten[i];
System.out.println(""+stueckelung[i]+" "+einheiten[i]+"er -> noch "+restbetrag+" €");
}
return stueckelung;
}
}
|
erstellt am 2.12.2008 21:38, zuletzt gendert am 2.12.2008 21:38
