Lo sé, el título te hace reír
Dada una cantidad de salida de dinero, la menor cantidad de monedas constituye esa cantidad
Ejemplos
0.1
1 dime
0.01
1 penny
0.28
1 quarter 3 penny
0.56
2 quarter 1 nickel 1 penny
1.43
5 quarter 1 dime 1 nickel 3 penny
Especulación
- 100 centavos en un dólar.
- Los valores de cada tipo de moneda son:
penny
1 centavonickel
5 centavosdime
10 centavosquarter
25 centavos
No se permiten los elementos integrados que trivializan esta tarea.
I / O
La entrada es un decimal que representa el valor en dólares del total
- No hay necesidad de pluralizar
- Orden:
quarter
->penny
- La salida debe ser
<#_of_coins> <coin type>
- Separadores:
,
o,
o
El único espacio en blanco final permitido es una nueva línea / espacio final.
Si hay cero de un tipo de moneda, ese tipo de moneda no debe mostrarse . Ej. 0.25
-> 1 quarter
no 1 quarter 0 dime 0 nickel 0 penny
1.43
, que es mayor que1
(less than 1)
parte no debería haber estado allí. Olvidé eliminar eso en el sandbox, supongo2 quarter(2 spaces)1 nickel 1 penny
?13.00
puede ser una entrada posible, pero la entrada nunca lo será13
. Siempre tendré un decimalRespuestas:
CJam, 60
Este script parece tener mucho margen de mejora, pero hasta ahora es más corto que ninguno. Esto hace uso del comando "md" integrado que devuelve el resultado entero de una división y el resto. Hace lo siguiente:
Pruébalo aquí
versiones anteriores:
fuente
JavaScript ES6, 107 bytes
Matemáticas simples
fuente
|0
después deln%5
?Python 2, 120 bytes
Solo para estar seguro, se cambió a algo que definitivamente funciona para arreglar el comentario de @ Ogaday, al menos por ahora. No estoy seguro de si necesito o no
int()
también, pero tengo problemas para convencerme de que no.es un byte extra desactivado, pero imprime un extra
L
para entradas grandes (aunque este código no funciona para entradas extremadamente grandes de todos modos, debido a la precisión flotante).fuente
a=40/a+5^12
[x^k for x in [10, 5, 1]]
y[k/y for y in [25, 10, 5]]
para diferentesk
, luego vi que dos listas estaban compensadas por 5. Probablemente subóptima, pero no he tenido tiempo de fuerza bruta.10.03
y10.04
. Tiene que ver con la representación de flotadores de Python y cómo los redondea a ints. Tratar"print %d"%(10.03*100)
.n=int(''.join(raw_input().split(".")))
puede funcionar, pero es bastante detallado.dc, 104
Nuevas líneas agregadas para "legibilidad" :
fuente
Retina , 97
Gracias (como siempre) a @randomra: guardado 1 byte.
Asume que la entrada está en forma
xxx.yy
oxxx.y
.Pruébalo en línea.
fuente
$&
es lo mismo que$0
lo que puede ahorrar un byte en$0.0
por$&0
.Vitsy,
11010097 bytesSí, espera, todavía estoy procesando esto.
Explicación en el modo detallado que vendrá pronto:
Pruébalo en línea!
fuente
retrauq
casi parece una palabra ...Java 8 lambda, 165 bytes
Espera entrada
y
como doble o flotante.Demasiado ternario. ; -;
fuente
;-;
¿Que es eso? ¿Es eso un wampa?JavaScript ES6,
202200 bytesEspero que esto se pueda jugar al golf ...
Código sin golf:
fuente
LabVIEW, 62 primitivas de LabVIEW
Creé 2 matrices para los nombres y valores y los revisé desde la parte superior (matriz de índice con i) usando un operador de módulo (lo de R IQ). Las monedas restantes se pasan al registro de desplazamiento.
Si el valor es mayor que 0, convierto el número en cadena y concatena la cadena transmitida con el número y el nombre de la moneda y lo vuelvo a colocar en el registro de desplazamiento.
Ijus se dio cuenta de que mi gif no muestra el caso falso, pero de todos modos no hay nada que ver, solo pasa a través de la cadena que entró.
fuente
Japt, 77 bytes
Afortunadamente, los cuatro nombres de monedas son compresibles. El
¿
debería ser el byte literal 0x81. ¡Pruébelo en línea!fuente
73 quarter 1 nickel 2 penny
. 73 * .25 + 1 * .05 + 2 * .01 = 18.32 en lugar de 18.33.C,
147144142140 bytesSin golfista con las pruebas:
fuente
char*[]
conchar**
,int a[]
conint*a
y ponga elm%=a[i++]
en la última parte del ciclo for. Debería guardar 4 bytes. Todavía no lo he probado, así que prueba con cada uno de ellos.m%=a[i++]
Aunque se movió un poco, gracias.if(m/a[i])
conm/a[i]&&
para guardar 2 bytes más."quarter\0dime\0nickel\0penny"
en el printf. Cada \ 0 termina la cadena, ahorrando 1 char cada uno\0
hace que el programa se bloquee. No estoy seguro de cómo se supone que la iteración funcione sobre dicha cadena de todos modos.MAT , 82
106107¡Pruébalo en MATL Online!
fuente
JavaScript,
156145144 bytesNo coincide con la respuesta de fórmula de ETHproduction, pero de todos modos ...
Esta es una de mis primeras rondas de golf, por lo que cualquier mejora es muy apreciada. Ya robé el "xor trunc" de ETH, lo siento, era demasiado inteligente :-)
Más legible:
Nota: Mientras se probaba me di cuenta de que las divisiones JavaScript (? Al menos en mi máquina)
1.13 / 0.01
a1.12999...
, haciendo que mis (y probablemente todas las otras presentaciones JS) no funcionen correctamente 100% ...fuente
Perl 5 -
128124 bytesSupongo que esto puede reescribirse para ser mucho más corto, pero realmente no puedo verlo.
EDITAR: solo un truco matemático para guardar 4 caracteres.
fuente
Perl 6 , 96 bytes
Uso:
fuente
Python 2,
167161bytesActualización 1: Robé la idea de Sp3000 de usar input () y convertir mi código en un script en lugar de una función.
fuente
C, 162 bytes
Lamentablemente, no funciona sin el
#include
.Sin golf
fuente
Lua 5.3,
141139132131 bytesMás o menos basado en la respuesta Python de Sp3000, pero con mi propia fórmula mágica.
Editar: mejoró la
a
fórmula. Anteriormente lo eraa=a*3%13~#s%4
.Edición 2: anteriormente estaba usando
math.ceil
para redondear y convertir a entero. Ahora estoy reutilizando//
para redondear y agregando~~
para convertir a entero.Editar 3: afeita un personaje cambiando el patrón de
"%w+ "
a".- "
.fuente
K (oK) ,
9578 bytesSolución:
Pruébalo en línea!
Ejemplo:
Explicación:
Module la entrada por cada moneda, luego divida las monedas por el resultado.
Alimente cada resultado junto con el nombre de la moneda en una función, devolviendo el valor de cadena de ambos si el número de monedas no es cero.
Aplane todo y únase con espacios en blanco.
fuente
Kotlin , 147 bytes
Embellecido
Prueba
TIO
TryItOnline
fuente