Este desafío es un homenaje al usuario de PPCG Dennis por ganar la parte de ladrones de The Programming Language Quiz .
Mirando la página de perfil PPCG de Dennis podemos ver algunas cosas bastante impresionantes:
Actualmente tiene más de sesenta y ocho mil reputación, lo que lo convierte en el segundo en general en representación , superando el tercer lugar en casi treinta mil. Recientemente ganó nuestra elección para un nuevo moderador y obtuvo un nuevo diamante brillante al lado de su nombre. Pero personalmente creo que la parte más interesante de Dennis es su número de identificación de usuario PPCG: 12012.
A primera vista, 12012
casi parece un palíndromo , un número que dice lo mismo cuando se invierte, pero está un poco apagado. Puede convertirse en el palíndromo 21012
si intercambiamos las posiciones del primero 1
y 2
, y puede convertirse en el palíndromo 12021
si intercambiamos el último 1
y 2
. Además, siguiendo la convención de que los ceros a la izquierda en un número no se escriben, intercambian el primero 1
y los 0
resultados en 02112
o más bien 2112
que es otro palíndromo.
Definamos un número de Dennis como un entero positivo que no es palindrómico en sí mismo, pero que puede convertirse en un palíndromo intercambiando las posiciones de al menos un par de dos dígitos. El orden de un número de Dennis es el número de pares distintos de dígitos que se pueden intercambiar para hacer un palíndromo (no necesariamente distinto).
Así que el orden de 12012
es 3 desde 3 pares distintos de sus dígitos ( 12012
, , ) se pueden intercambiar alrededor para producir palíndromos. pasa a ser el menor número de orden 3 Dennis.12012
12012
12012
10
es el número de Dennis más pequeño y tiene el orden 1 porque al cambiar 1
y 0
da 01
aka, 1
que es un palíndromo.
Los ceros imaginarios iniciales de un número no cuentan como dígitos conmutables. Por ejemplo, el cambio 8908
de 08908
e intercambiando los dos primeros dígitos para obtener el palíndromo 80908
es válido. 8908
No es un número de Dennis.
Se podría decir que los números que no son de Dennis tienen orden 0.
Desafío
Escriba un programa o función que tome un entero positivo N e imprima o devuelva el enésimo número Dennis más pequeño junto con su orden en algún formato razonable como 12012 3
o (12012, 3)
.
Por ejemplo, 12012
es el número 774 de Dennis, por lo que si 774
es la entrada a su programa, la salida debería ser algo así 12012 3
. (Curiosamente, 774 es otro número de Dennis).
El código más corto en bytes gana.
Aquí están los primeros 20 números de Dennis y sus órdenes de referencia:
N Dennis Order
1 10 1
2 20 1
3 30 1
4 40 1
5 50 1
6 60 1
7 70 1
8 80 1
9 90 1
10 100 1
11 110 2
12 112 1
13 113 1
14 114 1
15 115 1
16 116 1
17 117 1
18 118 1
19 119 1
20 122 1