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 12012ressemble presque à un palindrome , un nombre qui lit la même chose une fois inversé, mais un peu éteint. Il peut devenir le palindrome 21012si nous échangeons les positions du premier 1et 2, et il peut devenir le palindrome 12021si nous échangeons le dernier 1et 2. De plus, suivant la convention voulant que les zéros non-majuscules d’un nombre ne soient pas écrits, permutez le premier 1et les 0résultats 02112ou plutôt 2112un 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 12012est 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.120121201212012
10est le plus petit numéro de Dennis et a l'ordre 1 parce que commuter autour de 1et 0donne 01aka 1qui est un palindrome.
Les zéros non significatifs d'un nombre ne comptent pas comme des chiffres commutables. Par exemple, le changement 8908de 08908et échanger les deux premiers chiffres pour obtenir le palindrome 80908est invalide. 8908n'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 3ou (12012, 3).
Par exemple, 12012est le 774ème numéro de Dennis, donc si 774est 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
