Dado un número entero positivo n salida de la n número ésimo de la secuencia de euros iginal.
Calculando la secuencia
Esta secuencia es igual a OEIS A242491 .
Un número es parte de dicha secuencia si el número puede formarse utilizando tantas monedas o billetes diferentes en euros, pero solo uno de cada uno . Tenga en cuenta que no tiene que considerar centavos.
Ejemplo:
6
estaría en la secuencia, ya que puede consistir en una moneda de 1 euro y una nota de 5 euros.
4
NO estaría en la secuencia, ya que no se puede formar con los requisitos dados.
Para dar a todos una visión general, aquí hay una lista con los valores en euros que debe tener en cuenta:
1 €, 2 €, 5 €, 10 €, 20 €, 50 €, 100 €, 200 €, 500 €
Tenga en cuenta que esta secuencia solo varía de 0 (sí, ¡0 está incluido!) A 888.
Aquí están los primeros 15 elementos de esta secuencia:
0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, ...
Casos de prueba
Entrada -> Salida
2 -> 1
6 -> 6
21 -> 25
33 -> 50
a(1)=1
la tabla oeis ?N<=512
?0
an=0
que está bien.0->0; 1->1; 5->6; 20->25; 32->50; 511->888
lugar de1->0; 2->1; 6->6; 21->25; 33->50; 512->888
.Respuestas:
Jalea , 7 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 2 , 32 bytes
Pruébalo en línea!
Python 2 , 34 bytes
Pruébalo en línea!
fuente
Casco ,
8 75 bytesPruébalo en línea! Editar: -3 bytes gracias a Zgarb!
Escuché que está planeado cambiar
İ€
a la secuencia finita[0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10,...,500]
en el futuro. Una vez que se implementa, el siguiente código debería funcionar con una cuenta de bytes de 7:donde
↓6
cae los primeros seis elementos de la secuencia. Pruébalo en línea!fuente
0
s a la salida?Σ!Ṗ↑9İ€
Debería guardar un byte.İ€
se haya cambiado la implementación de . Que esté volviendo actualmente en2500
lugar de25
ser simplemente una coincidencia.↑9
, ya que el texto del desafío no menciona lo que debería suceder para las entradas más allá de 512.Perl 5 , 29 bytes
Código de 28 bytes + 1 para
-p
.Utiliza indexación basada en 0.
Pruébalo en línea!
fuente
sprintf"%o",$_-1
, debido a la secuencia indexada desde 1, por ejemplo2 -> 1
, aunque la secuencia OEIS comienza con 1-1
hasta que OP aclaró!Jalea , 11 bytes
Pruébalo en línea!
¡Muchas gracias a @Erik the Outgolfer por su gran ayuda en el chat!
Explicación
fuente
Mathematica, 47 bytes
Mathematica, 48 bytes
-6 bytes de Martin Ender
fuente
Join[x={1,2,5},10x,100x]
ySubsets@
.Java 8,
2826 bytes0 indexado:
Port of @xnor 's Python 2 respuesta (que solía eliminarse, de ahí la respuesta indexada 1 original a continuación).
Pruébalo aquí.
Antigua respuesta indexada 1 ( 28 bytes ):
El puerto de Python 2 de @Tfeld respondió antes de hacer su última edición . En lugar de usar
~-
un montón de veces, se usa--n
para disminuirn
en 1 justo después de ingresar a la función lambda.Pruébalo aquí.
fuente
05AB1E , 7 bytes
0 indexado.
Respuesta de Port of Mr. Xcoder's Jelly
Pruébalo en línea!
Explicación
fuente
8в4‰ε5β}J
(indexado a 0)8в4‰J5öJ
8 con el truco de Dennis. La suya fue más adecuada para 05AB1E de hecho :)Python 2 ,
403836 bytesInspirado por la respuesta de xnor , pero utiliza 1 indexación.
Pruébalo en línea!
Python 2 ,
786562615856 bytesPruébalo en línea!
fuente
a(1)=1
está permitido cambiar la indexación .Jalea , 15 bytes
0 indexado.
Pruébalo en línea!
Explicación
Esto se basa en la solución Python de xnor , donde el algoritmo es n + n / 4 + n / 32 * 10 + n / 256 * 100 .
Como la primera n no se modifica, esto es lo mismo que:
Como 4, 32 y 256 son potencias de dos, pueden traducirse en cambios de bits.
El golf no se traduce bien en Python, pero convertir las listas en cadenas Jelly de índices de páginas de códigos reduce el recuento de bytes de Jelly.
Jalea , 24 bytes
Pruébalo en línea!
fuente
€
en su código. :) Pero -1 porque esta es la primera vez que una respuesta Jelly es más larga que mi respuesta Java. XD Vergüenza sobre ti (y gl & hf jugando al golf aún más). ;)Octava , 59 bytes
Pruébalo en línea!
Explicación
El código crea la secuencia completa y luego la indexa.
Primero, las expresiones binarias de los números.
0
,1
, ...511
se genera como una matriz de 512 × 9:(la
-48
parte es necesaria porque el resultado dedec2bin
es caracteres, no números). Esto daEntonces el producto Kronecker de
[1 2 5]
[1 10 100]
se calcula el yy transpuesto
que da los nueve posibles valores del euro como un vector 9 × 1:
Matriz-multiplicando la matriz y el vector anteriores
da un vector de 512 × 1 que contiene todos los números posibles en la secuencia, con repeticiones y sin clasificar:
Deduplicando y clasificando
da la secuencia completa:
Finalmente, la entrada se usa para indexar en esta secuencia
para producir la salida.
fuente
Rubí ,
2827 bytesPruébalo en línea!
Explicación
Cadena octal de salida, reemplace los dígitos 4..7 con 5..8
fuente
Bash + GNU utilidades, 20
Lee un índice indexado a cero de STDIN.
Pruébalo en línea .
fuente
05AB1E , 20 bytes
Pruébalo en línea!
1-indexado, usando la fórmula de
[(n%3)^2 + 1]*10^floor(n/3)
para generar los primeros 10 términos, luego usando powerset para calcular todas las combinaciones posibles ... Luego lo ordeno y tiroa[b]
.Véalo en acción a continuación:
fuente
JavaScript (ES6), 34 bytes
O 32 bytes usando la indexación 0 correcta:
fuente
n=1
dar0
?Jalea , 20 bytes
Pruébalo en línea!
Sé que esto es más largo que la respuesta existente, pero creo que este enfoque es golfable desde aquí: P
-2 bytes gracias a Erik the Outgolfer
fuente
1,10,ȷ2
->“¢½d‘
Retina , 42 bytes
Pruébalo en línea! El enlace incluye casos de prueba. 0 indexado. Explicación:
Convierte de decimal a unario, con un
;
sufijo.Convierte a octal, pero sigue usando la representación unaria de los dígitos con
;
después de cada valor unario.Agregue 1 a los valores 4-7.
Convierta cada valor más su sufijo en decimal.
fuente
Pyth , 12 bytes
Utiliza la brujería de Dennis .
Pruébalo aquí.
Pyth ,
16 1513 bytesVerifique todos los casos de prueba.
Gracias a Erik the Outgofer por algunas ideas.
fuente
C , 67 bytes
Un puerto directo de la respuesta JavaScript de Neil , pero pensé que esto debería agregarse para completar.
Probado en GCC versión 6.3.0. Lanzará algunas advertencias, pero compilará de todos modos.
fuente