Está escribiendo un programa para una caja registradora automática. El usuario necesita un cambio con la menor cantidad de monedas utilizadas. Escriba un programa que tome una cantidad (digamos $ 1.53) y proporcione un cambio en las denominaciones de los EE. UU., En este caso: 1 billete de un dólar, 1 x cincuenta centavos y 3 x un centavo. El programa más corto será el ganador. Puntos de bonificación por soportar otras monedas (es decir, denominaciones del Reino Unido) y monedas inusuales (1, 2, 3 centavos)
Tiene estas denominaciones de EE. UU .: 1 centavo, 5 centavos, 10 centavos, 25 centavos, 50 centavos, 1 dólar (billete o moneda), 2 dólares, 5 dólares, 10 dólares.
Tiene estas denominaciones del Reino Unido: 1 penique, 2 peniques, 5 peniques, 10 peniques, 20 peniques, 50 peniques, £ 1, £ 2, £ 5 (billete o moneda), £ 10.
Respuestas:
Windows PowerShell, 108
111117Primer intento, sin golf hasta ahora:
Notas de implementación:
Si 3 y 4 no necesitan ser satisfechos (es decir, yo controlo el formato de entrada ;-)), entonces el siguiente programa es suficiente (71):
fuente
Mathematica: 110 caracteres
Uso
O
(6 caracteres más) da
Para otras denominaciones, simplemente cambie la tabla racional {10, ...., 5 / 100,1 / 100}
fuente
D: 225 caracteres
Más legible:
Solo maneja moneda estadounidense. Toma el valor como un valor de coma flotante en la línea de comando (debe tener el 0 inicial para valores inferiores a 1 dólar). No acepta $ como parte del valor. Emite el número de cada tipo de billete / moneda en una línea separada. Por ejemplo, una entrada de 1.53 da como resultado:
0 20
0 10
0 5
1 1
2 25/100
0 10/100
0 5/100
3 1/100
fuente
Mathematica, 51 bytes
entrada
salida
Mathematica, 82 bytes - CON BONIFICACIÓN--
Entrada
salida
fuente
Javascript,
8483 bytesUtiliza un algoritmo codicioso.
fuente
APL (Dyalog) , 19 bytes
Solicita la cantidad deseada y luego las denominaciones expresadas en la unidad más pequeña (centavos / centavos).
Pruébalo en línea!
⎕CY'dfns'
C o p y eldfns
espacio de trabajo⎕ stamps⎕
pedir entradas y usarlas como argumentos para lastamps
funciónfuente