Montag Minigolf: Eine Reihe von kurzen Code-Golf- Herausforderungen, die (hoffentlich!) Jeden Montag veröffentlicht werden.
Entschuldigung, es ist spät; Ich erkannte 90% des Weges, indem ich eine andere Idee aufschrieb, dass es sich um ein Duplikat handelte.
Meine Familie ist ziemlich groß, deshalb essen wir viel. Normalerweise müssen wir Rezepte verdoppeln, verdreifachen oder sogar vervierfachen, um genug Essen zuzubereiten! Aber da das Multiplizieren der Messungen ein Problem sein kann, wäre es schön, ein Programm zu haben, das dies für uns erledigt.
Herausforderung
Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu erstellen, die eine Messung als Zahl N und einen Buchstaben L aufnimmt und dieselbe Messung möglichst vereinfacht zurückgibt. Hier sind die erforderlichen Maßeinheiten (alle sind amerikanisch, wie meine Familie) und die entsprechenden Buchstaben:
1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t)
1 pound (l) = 16 ounces (o)
1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f)
"So weit wie möglich vereinfacht" bedeutet:
- Verwenden Sie die größtmögliche Maßeinheit. Jede Einheit kann einen Rest von 1/4, 1/3, 1/2, 2/3 oder 3/4 haben.
- Wenn nötig, verwandeln Sie das Ergebnis in eine gemischte Zahl.
Zum Beispiel 4 o
ist vier Unzen, was 1/4 l
ein Viertel Pfund wird. 8 t
8 Teelöffel werden 2 2/3 T
.
Einzelheiten
- Die Eingabe kann in jedem vernünftigen Format erfolgen. Gleiches gilt für die Ausgabe. (
1 t
,1,"t"
,1\nt
, Etc.) - Stellen Sie sicher, dass alle Bruchteile ordnungsgemäß behandelt werden. (
11/4
anstelle von1 1/4
ist nicht erlaubt.) - Die Zahl wird immer eine gemischte Zahl, und wird immer einen Nenner von
2
,3
oder4
(oder keine). (nein1 1/8 T
, nein1.5 T
, etc.) - Infolgedessen sind niemals Umrechnungen nach unten (z. B. Tassen in Esslöffel) erforderlich.
- Der Buchstabe wird immer einer der oben aufgelisteten Buchstaben sein (
Tcfglopqt
).
Testfälle
Hier ist eine große Liste, die hoffentlich alle Arten von Fällen abdeckt:
Input | Output
--------+--------
1/2 t | 1/2 t
3/4 t | 1/4 T
1 t | 1/3 T
1 1/2 t | 1/2 T
2 t | 2/3 T
2 1/4 t | 3/4 T
2 1/2 t | 2 1/2 t
3 t | 1 T
10 t | 3 1/3 T
16 t | 1/3 c
5 1/3 T | 1/3 c
8 T | 1/2 c
16 T | 1 c
36 T | 2 1/4 c
1/4 c | 1/4 c
1024 c | 1024 c
1 o | 1 o
4 o | 1/4 l
5 1/3 o | 1/3 l
5 2/3 o | 5 2/3 o
8 o | 1/2 l
28 o | 1 3/4 l
28 l | 28 l
2 f | 2 f
4 f | 1/4 p
8 f | 1/4 q
16 f | 1/2 q
32 f | 1/4 g
64 f | 1/2 g
128 f | 1 g
2/3 p | 1/3 q
1 1/3 p | 2/3 q
2 p | 1/4 g
1 q | 1/4 g
Wertung
Unsere Küche ist sehr klein, daher sollte der Code so kurz wie möglich sein, um die Küche nicht enger zu machen. Kürzester gültiger Code in Bytes gewinnt; tiebreaker geht zur Übermittlung, die als erste ihre letzte Bytezahl erreicht hat. Der Gewinner wird am kommenden Montag, dem 9. November, ermittelt. Viel Glück!
Bitte beachte, dass diese Herausforderung World Big Dosa ähnelt, aber kein Duplikat davon ist .