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;
    }
}
tags: Java & Programmieren erstellt am 2.12.2008 21:38, zuletzt gendert am 2.12.2008 21:38