Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Algoritnmus erstellen


Korina - Mo 24.10.05 20:13
Titel: Algoritnmus erstellen
Hallo,
ich möchte folg. Algorithmus im Pseudocode basteln, komme aber irgendwie nicht zum Ergebnis.

Es geht um einen Algorithmus, der für einen Betrag zwischen 0 und 100 Cent Wechselgeld ausgibt. Dabei stehen jeweils genügend viele Münzen im Wert von 1, 2, 5, 10, 20 und 50 Cent zur Verfügung. Ziel ist es, mit möglichst wenigen Münzen auszukommen.

Habe mir überlegt, dass man zuerst die Größte Münze vom Wechselgeld abzieht, den Wert der Münze vom Wechselgeld abzieht und das ganze solange wiederholt bis der Münzwert minus das Wechselgeld gleich null ist.
Und nu das ganze im Pseudocode. Wer kann mir helfen?


Gausi - Mo 24.10.05 20:18

Hallo und :welcome: in der Entwickler-Ecke!

Das ist recht einfach, ungefähr so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
solange Betrag >= 50 mache
    Gib 50 Cent aus
    Betrag = Betrag - 50
solange Betrag >= 20 mache
    Gib 20 Cent aus
    Betrag = Betrag - 20

usw.


Edit: Bei diesen Münzwerten funktioniert dieses Verfahren auch (es ist "Greedy"), aber nicht mit allen: bei Münzwerten 50, 40, 20, 10, 5, 2, 1 und Wechselgeld 80 würde er 50-20-10 (3 Münzen) zurückgeben, optimal wären aber 40-40 (2 Münzen)


Korina - Mo 24.10.05 20:32

danke hab mal wieder viel zu kompliziert gedacht ;-)