Münzausgabe in Java berechnen

finestclubber

Neues Mitglied
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
 
S

SlaterB

Gast
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

Top Contributor
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.
 
Zuletzt bearbeitet:

Neue Themen


Oben