# Münzausgabe in Java berechnen



## finestclubber (11. Okt 2011)

Hallo, ich bin Erstsemester in Informationslogistik

Ich habe von meinem Lehrer folgende Aufgabe bekommen:

5 Münzausgabe
Erstellen Sie eine neue Klasse mit einer main Methode (Geeigneter Name der Klasse siehe „Abgabe“).
Die main Methode soll als Startwert einen Geldbetrag erhalten, z.B. 9.66. Zerlegen Sie diesen Betrag
nun in möglichst wenige Münzen, d.h. im Beispiel
4*2€ + 1*1€ + 1*0.5€ + 1*0.1€ + 1*0.05€ + 1*0.01€.
Tipp: die Operatoren / und % werden Ihnen helfen.

Kann mir jemand erklären wie ich vorgehen muss?

MFG


----------



## SlaterB (11. Okt 2011)

bist du von der Intelligenz her fähig, ohne Java und Computer 9.66 auf strukturierte Weise in möglichst wenige Münzen bzw. genau die genannte Aufteilung zu zerlegen?
wie würdest du auf dem Papier/ mit echten Münzen vorgehen? welche Berechnungen ergeben sich daraus?,
dass du irgendwann mal 9/2 = 4 rechnen musst ist fern aller Vorstellungskraft oder doch schon bekannt und was genau ist dann dein Problem?

erzählen, erzählen, erzählen (du, nicht andere  , abgesehen von kopierter Aufgabe ist mein Posting leider schon länger als deins)


----------



## Landei (11. Okt 2011)

Für eine zufällige Verteilung von Münzwerten ist die Aufgabe, dafür wirklich eine optimale Lösung zu finden, gar nicht so einfach. Aber bei unseren üblichen 1,2,5,10... Münz-System funktioniert ein Greedy-Algorithmus(*): Ziehe immer die größte Münze, die kleiner oder gleich dem Betrag ist, ab, solange bis nichts mehr übrig bleibt. Bleibt nur noch das Problem, wie du dir die abgezogenen Münzen merkst, aber das kann man z.B. mit einem Array lösen.


(*) Angenommen, man hat die Münzwerte 1,5 und 6, dann würde ein Greedy-Algorithmus für den Wert 10 die Lösung 6,1,1,1,1 liefern, während die optimale Lösung 5,5 wäre. Für ein 1,2,5,10... System lässt sich aber nachweisen, dass der Greedy-Algorithmus dort immer optimal funktionert.


----------



## Andi_CH (12. Okt 2011)

Landei hat gesagt.:


> Bleibt nur noch das Problem, wie du dir die abgezogenen Münzen merkst, aber das kann man z.B. mit einem Array lösen.


... oder gleich auf die Konsole schreiben (ja, meine ich ernst, aber nur so lange du nichts komplizierteres als "hello world" und Münzausgaben programmierst.


----------

