Diese Herausforderung ist eine Hommage an den PPCG- Benutzer Dennis , der den Räuberteil des Programmiersprachen-Quiz gewonnen hat .
Wenn wir Dennis 'PPCG-Profilseite betrachten , können wir einige ziemlich beeindruckende Dinge sehen:
Er hat derzeit mehr als acht-sechzig tausend Ruf, was ihn an zweiter Stelle in Gesamt rep und übertrifft damit die dritten Platz von fast dreißigtausend. Er hat vor kurzem gewann unsere Wahl für einen neuen Moderator und bekam einen glänzenden neuen Diamanten neben seinen Namen. Aber ich persönlich denke, der interessanteste Teil an Dennis ist seine PPCG-Benutzer-ID-Nummer: 12012.
Auf den ersten Blick 12012sieht es fast wie ein Palindrom aus , eine Zahl, die umgekehrt dasselbe liest, aber ein wenig verkehrt ist. Es kann das Palindrom werden, 21012wenn wir die Positionen des ersten 1und vertauschen 2, und es kann das Palindrom werden, 12021wenn wir das letzte 1und vertauschen 2. Befolgen Sie außerdem die Konvention, dass führende Nullen in einer Zahl nicht geschrieben werden, und tauschen Sie die ersten 1und die 0Ergebnisse aus, 02112oder vielmehr, 2112was ein anderes Palindrom ist.
Definieren wir eine Dennis-Zahl als positive Ganzzahl, die selbst nicht palindrom ist, sondern durch Vertauschen der Positionen von mindestens einem Paar von zwei beliebigen Ziffern in ein Palindrom umgewandelt werden kann. Die Reihenfolge einer Dennis-Zahl ist die Anzahl unterschiedlicher Ziffernpaare, die ausgetauscht werden können, um ein (nicht notwendigerweise unterschiedliches) Palindrom zu bilden.
So ist die Reihenfolge der 120123 , da 3 verschiedene Paare ihrer Ziffern ( 12012, , ) um Palindrome zu erzeugen , ausgelagert werden. zufällig ist es die kleinste 3-Dennis-Zahl.120121201212012
10ist die kleinste Dennis-Zahl und hat die Ordnung 1, weil das umschalten 1und aka was ein Palindrom 0ergibt .011
Die imaginären führenden Nullen einer Zahl zählen nicht als umschaltbare Ziffern. Zum Beispiel ändert 8908an 08908und die ersten beiden Ziffern Vertauschen der Palindrom zu bekommen 80908ist ungültig. 8908ist keine Dennis-Nummer.
Man könnte sagen, dass Nicht-Dennis-Nummern die Ordnung 0 haben.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die eine positive ganze Zahl N aufnimmt und die N-kleinste Dennis-Zahl zusammen mit ihrer Reihenfolge in einem vernünftigen Format wie 12012 3oder ausgibt oder zurückgibt (12012, 3).
Beispiel: 12012Ist die 774. Dennis-Nummer 774, sollte die Ausgabe etwa so lauten, wenn es sich um die Eingabe für Ihr Programm handelt 12012 3. (Seltsamerweise ist 774 eine andere Dennis-Nummer.)
Der kürzeste Code in Bytes gewinnt.
Hier sind die ersten 20 Dennis-Nummern und ihre Referenzbestellungen:
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
