Dado un número entero N
como entrada, N
genera el número permutapalindrómico.
Un número permutapalindrómico es un entero estrictamente positivo de tal manera que hay al menos una permutación de sus dígitos que da como resultado un palíndromo (es decir, un número que es su propio reverso).
Por ejemplo, 117
es un número permutapalindrómico ya que sus dígitos se pueden permutar 171
, que es un palíndromo.
Consideramos que los números como 10
no son números permutapalindrómicos, aunque 01 = 1
sea un palíndromo. Imponemos que la permutación palindrómica no debe tener un cero 0
inicial (como tal, en sí mismo no es permutapalindrómico).
Los números que ya son palíndromos también son permutapalindrómicos, ya que permutar nada es válido.
Entradas y salidas
N
puede ser 0 indexado o 1 indexado. Indique cuál de los dos utiliza su respuesta.- La entrada puede tomarse
STDIN
, como un argumento de función, o cualquier cosa similar en el idioma de su elección. El resultado puede escribirseSTDOUT
, devolverse desde una función o cualquier cosa similar en el idioma que elija. - La entrada y la salida deben estar en la base decimal.
Casos de prueba
Los siguientes casos de prueba están indexados en 1. Su programa debe poder pasar cualquiera de los casos de prueba presentados aquí en un máximo de 1 minuto.
N Output
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
42 181
100 404
128 511
256 994
270 1166
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
fuente
10
)Respuestas:
05AB1E ,
151413 bytes¡ Ahorré un byte gracias a Emigna ! Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
µNœvyJÂïQ}O__½
para 14.Brachylog, 19 bytes
Pruébalo en línea!
Toma alrededor de 17 segundos para
N = 270
.Explicación
Predicado principal:
Predicado 1:
fuente
Brachylog ,
2120 bytes1 byte gracias a Fatalize.
¿Diseñaste el desafío para Brachylog?
Pruébalo en línea!
270 toma alrededor de medio minuto aquí.
Predicado 0 (predicado principal)
Predicado 1 (predicado auxiliar)
fuente
Pyth, 14
Pruébelo aquí o ejecute un Test Suite
Expansión:
fuente
JavaScript (ES6), 99 bytes
Explicación:
fuente
f=
cuando lo refieras más tardeR, 145 bytes
sin golf
Básicamente: una función que verifica la pertenencia al conjunto permutapalindrómico y un ciclo while que se incrementa hasta encontrar el enésimo miembro.
fuente
Python 2.7,
163154 bytes:Suficientemente simple. Básicamente usa un
while
bucle para crear repetidamente matrices que contienen números permutapalindrómicos en el rango[1,Q)
hasta queQ
sea lo suficientemente grande como para que la matriz contengaInput
varios elementos. Luego genera el último elemento en esa matriz.¡Pruébelo en línea! (Ideone)
fuente
Perl 6 , 66 bytes
0 basado
Explicación:
Prueba:
fuente
Dyalog APL , 51 bytes
Un índice.
Termina todos los casos de prueba al instante en TryAPL
fuente
a(n) <= 5n
?JavaScript (ES6), 92
Menos golf
Prueba
fuente
Javascript (usando una biblioteca externa - Enumerable) (142 bytes)
Enlace a lib: https://github.com/mvegh1/Enumerable/
Explicación del código: _.Secuencia crea un enumerable para un recuento de elementos "n", basado en el predicado de la firma ("i" teration
, "una" matriz acumulada). Convierta la iteración actual en una cadena y cree una enumerable de todas las permutaciones a partir de ella. Pruebe si alguna de las permutaciones satisface la prueba de no comenzar con "0" y si la inversión de la permutación es igual a la permutación. Devuelve el último elemento de la secuencia porque esa es la salida deseada según OPfuente
Python 2, 93 bytes
1 indexado. Dependiendo de su sistema, el último caso de prueba puede exceder la profundidad de recursión permitida.
No calcula permutaciones. En cambio, utiliza el hecho de que dos cadenas son permutaciones si son iguales cuando se ordenan. Para probar si un número es permutapalindrómico, verifica si sus dígitos ordenados son iguales a los dígitos ordenados de cualquier palíndromo hasta un límite.
96 bytes:
1 indexado. Dependiendo de su sistema, el último caso de prueba puede exceder la profundidad de recursión permitida.
Esto no mira las permutaciones y en su lugar usa la siguiente caracterización:
Esto es cierto porque un palíndromo debe emparejar dígitos desde el inicio y el final, excepto por un posible dígito central. La excepción proviene del requisito de que el dígito inicial sea distinto de cero, por lo que algunos dígitos distintos de cero deben aparecer dos veces a menos que el número sea de un solo dígito.
fuente
Haskell,
8987 bytesfuente
C, 254 bytes
fuente