Mini-golf del lunedì: una serie di sfide da golf a codice corto , pubblicate (si spera!) Ogni lunedì.
Scusa è tardi; Mi sono reso conto del 90% del tutto scrivendo un'idea diversa che si trattava di un duplicato.
La mia famiglia è piuttosto numerosa, quindi mangiamo molto cibo. Di solito abbiamo bisogno di raddoppiare, triplicare o addirittura quadruplicare le ricette per fare abbastanza cibo! Ma poiché moltiplicare le misurazioni può essere una seccatura, sarebbe bello avere un programma per farlo per noi.
Sfida
La tua sfida è quella di creare un programma o una funzione che esegua una misurazione come un numero N e una lettera L e restituisca la stessa misurazione, il più semplificata possibile. Ecco le unità di misura richieste (tutte sono americane, come la mia famiglia) e le lettere corrispondenti:
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)
"semplificato il più possibile" significa:
- Utilizzando la più grande unità di misura possibile. Ogni unità può avere un resto di 1/4, 1/3, 1/2, 2/3 o 3/4.
- Trasformare il risultato in un numero misto, se necessario.
Ad esempio, 4 o
sono quattro once, che diventano 1/4 l
, un quarto di sterlina. 8 t
, 8 cucchiaini, diventa 2 2/3 T
.
Dettagli
- L'input può essere preso in qualsiasi formato ragionevole; lo stesso con l'output. (
1 t
,1,"t"
,1\nt
, Etc.) - Assicurarsi che qualsiasi parte frazionaria sia trattata correttamente. (
11/4
al posto di1 1/4
non è permesso.) - Il numero sarà sempre un numero misto, e avrà sempre un denominatore
2
,3
o4
(o nessuno). (no1 1/8 T
, no1.5 T
, ecc.) - Come risultato di quanto sopra, non sono mai necessarie conversioni al ribasso (ad esempio tazze in cucchiai).
- La lettera sarà sempre una delle lettere sopra elencate (
Tcfglopqt
).
Casi test
Ecco un grande elenco, che si spera copra tutti i tipi di casi:
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
punteggio
La nostra cucina è molto piccola, quindi il codice dovrebbe essere il più breve possibile, in modo da non rendere la cucina più stretta. Vince il codice valido più breve in byte; tiebreaker va all'invio che per primo ha raggiunto il conteggio dei byte finali. Il vincitore verrà scelto lunedì prossimo, 9 novembre. Buona fortuna!
Questa sfida è simile a World Big Dosa , ma non è una sua copia .