Ce défi est un hommage à l' utilisateur de PPCG, Dennis, qui a remporté le jeu des voleurs du Quiz sur le langage de programmation .
En regardant la page de profil de PPCG de Dennis, on peut voir des choses assez impressionnantes:
Il a actuellement plus de soixante-huit mille joueurs, ce qui le place au deuxième rang des représentants , dépassant de près de trente mille la troisième place. Il a récemment remporté notre élection pour un nouveau modérateur et a reçu un nouveau diamant brillant à côté de son nom. Mais personnellement, je pense que la partie la plus intéressante de Dennis est son numéro d’identifiant PPCG: 12012.
À première vue, cela 12012
ressemble presque à un palindrome , un nombre qui lit la même chose une fois inversé, mais un peu éteint. Il peut devenir le palindrome 21012
si nous échangeons les positions du premier 1
et 2
, et il peut devenir le palindrome 12021
si nous échangeons le dernier 1
et 2
. De plus, suivant la convention voulant que les zéros non-majuscules d’un nombre ne soient pas écrits, permutez le premier 1
et les 0
résultats 02112
ou plutôt 2112
un autre palindrome.
Définissons un nombre de Dennis comme un entier positif qui n'est pas le palindrome lui-même mais qui peut être transformé en un palindrome en permutant les positions d'au moins une paire de deux chiffres. L' ordre d'un numéro de Dennis est le nombre de paires de chiffres distinctes qui peuvent être échangés pour former un palindrome (pas nécessairement distinct).
Donc , l'ordre 12012
est 3 depuis trois paires distinctes de ses chiffres ( 12012
, , ) peuvent être interchangés pour produire palindromes. se trouve être le plus petit ordre numéro 3 Dennis.12012
12012
12012
10
est le plus petit numéro de Dennis et a l'ordre 1 parce que commuter autour de 1
et 0
donne 01
aka 1
qui est un palindrome.
Les zéros non significatifs d'un nombre ne comptent pas comme des chiffres commutables. Par exemple, le changement 8908
de 08908
et échanger les deux premiers chiffres pour obtenir le palindrome 80908
est invalide. 8908
n'est pas un numéro de Dennis.
On pourrait dire que les nombres non-Dennis ont un ordre 0.
Défi
Ecrivez un programme ou une fonction qui prend un entier positif N et imprime ou renvoie le Nième plus petit nombre de Dennis avec son ordre dans un format raisonnable, tel que 12012 3
ou (12012, 3)
.
Par exemple, 12012
est le 774ème numéro de Dennis, donc si 774
est l’entrée de votre programme, le résultat devrait ressembler à quelque chose 12012 3
. (Curieusement, 774 est un autre numéro de Dennis.)
Le code le plus court en octets gagne.
Voici les 20 premiers numéros de Dennis et leurs commandes pour référence:
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