Mini golf de lunes: una serie de desafíos de código corto de golf , publicados (¡con suerte!) Todos los lunes.
Lo siento, es tarde; Me di cuenta del 90% del camino al escribir una idea diferente de que era un duplicado.
Mi familia es bastante grande, por lo que comemos mucha comida. ¡Por lo general, necesitamos duplicar, triplicar o incluso cuadruplicar recetas para hacer suficiente comida! Pero como multiplicar las medidas puede ser un fastidio, sería bueno tener un programa que haga esto por nosotros.
Desafío
Su desafío es crear un programa o función que tome una medida como un número N y una letra L , y devuelva la misma medida, simplificada lo más posible. Aquí están las unidades de medida requeridas (todas son estadounidenses, como mi familia), y sus letras correspondientes:
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)
"simplificado tanto como sea posible" significa:
- Usando la unidad de medida más grande posible. Cada unidad puede tener un resto de 1/4, 1/3, 1/2, 2/3 o 3/4.
- Convertir el resultado en un número mixto, si es necesario.
Por ejemplo, 4 o
son cuatro onzas, que se convierten en 1/4 l
un cuarto de libra. 8 t
, 8 cucharaditas, se convierte 2 2/3 T
.
Detalles
- La entrada puede tomarse en cualquier formato razonable; Lo mismo con la salida. (
1 t
,1,"t"
,1\nt
, Etc.) - Asegúrese de que cualquier parte fraccional se trate correctamente. (
11/4
en lugar de1 1/4
no está permitido) - El número será siempre un número mixto, y siempre tendrá un denominador de
2
,3
o4
(o ninguno). (no1 1/8 T
, no1.5 T
, etc.) - Como resultado de lo anterior, nunca se necesitan conversiones descendentes (por ejemplo, tazas a cucharadas).
- La letra siempre será una de las letras enumeradas anteriormente (
Tcfglopqt
).
Casos de prueba
Aquí hay una lista grande, con suerte cubriendo todo tipo de casos:
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
Puntuación
Nuestra cocina es muy pequeña, por lo que el código debe ser lo más corto posible, para no hacer que la cocina sea más pequeña. El código válido más corto en bytes gana; El desempate se envía primero a la sumisión que alcanzó su conteo final de bytes. El ganador será elegido el próximo lunes 9 de noviembre. ¡Buena suerte!
Tenga en cuenta que este desafío es similar pero no un duplicado de World Big Dosa .