Sie schreiben ein Programm für eine automatische Registrierkasse. Der Benutzer muss mit der geringsten Anzahl verwendeter Münzen wechseln. Schreiben Sie ein Programm, das einen Betrag (z. B. 1,53 US-Dollar) benötigt und die US-Stückelung ändert - in diesem Fall: 1 x 1-Dollar-Note, 1 x 50 Cent und 3 x 1 Cent. Das kürzeste Programm ist der Gewinner. Bonuspunkte für die Unterstützung anderer Währungen (dh britischer Stückelungen) und ungewöhnlicher Währungen (1, 2, 3 Cent?)
Sie haben diese US-Stückelungen: 1 Cent, 5 Cent, 10 Cent, 25 Cent, 50 Cent, 1 Dollar (Banknote oder Münze), 2 Dollar, 5 Dollar, 10 Dollar.
Sie haben diese britischen Stückelungen: 1 Pence, 2 Pence, 5 Pence, 10 Pence, 20 Pence, 50 Pence, £ 1, £ 2, £ 5 (Banknote oder Münze), £ 10.
Antworten:
Windows PowerShell, 108
111117Der allererste Versuch, bisher ungeölft:
Implementierungshinweise:
Wenn 3 und 4 nicht erfüllt sein müssen (dh ich steuere das Eingabeformat ;-)), reicht das folgende Programm aus (71):
quelle
Mathematica: 110 Zeichen
Verwendungszweck
Oder
(6 Zeichen mehr) gibt
Für andere Nennwerte ändern Sie einfach die Rationals-Tabelle {10, ...., 5 / 100,1 / 100}.
quelle
D: 225 Zeichen
Lesbarer:
Behandelt nur US-Währung. Nimmt den Wert als Gleitkommawert in der Befehlszeile (muss für Werte unter 1 Dollar die führende 0 haben). Akzeptiert $ nicht als Teil des Wertes. Gibt die Nummer jedes Geldschein- / Münztyps in einer separaten Zeile aus. ZB ergibt eine Eingabe von 1,53:
0 20
0 10
0 5
1 1
2 25/100
0 10/100
0 5/100
3 1/100
quelle
Mathematica, 51 Bytes
Eingang
Ausgabe
Mathematica, 82 Bytes - MIT BONUS--
Eingang
Ausgabe
quelle
Javascript,
8483 BytesVerwendet einen gierigen Algorithmus.
quelle
APL (Dyalog) , 19 Bytes
Fordert zur Eingabe des gewünschten Betrags und dann zur Bezeichnung in kleinsten Einheiten (Pennies / Cent) auf.
Probieren Sie es online aus!
⎕CY'dfns'
C o p y derdfns
Arbeitsbereich⎕ stamps⎕
Fragen Sie nach Eingaben und verwenden Sie diese als Argumente für diestamps
Funktionquelle