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, 12012casi 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 21012si intercambiamos las posiciones del primero 1y 2, y puede convertirse en el palíndromo 12021si intercambiamos el último 1y 2. Además, siguiendo la convención de que los ceros a la izquierda en un número no se escriben, intercambian el primero 1y los 0resultados en 02112o más bien 2112que 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 12012es 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.120121201212012
10es el número de Dennis más pequeño y tiene el orden 1 porque al cambiar 1y 0da 01aka, 1que es un palíndromo.
Los ceros imaginarios iniciales de un número no cuentan como dígitos conmutables. Por ejemplo, el cambio 8908de 08908e intercambiando los dos primeros dígitos para obtener el palíndromo 80908es válido. 8908No 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 3o (12012, 3).
Por ejemplo, 12012es el número 774 de Dennis, por lo que si 774es 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
