Geben Sie bei einer Ganzzahl N
als Eingabe die N
dritte permutapalindromische Zahl aus.
Eine permutapalindromische Zahl ist eine streng positive ganze Zahl, sodass mindestens eine Permutation ihrer Ziffern ein Palindrom ergibt (dh eine Zahl, die ihre eigene Umkehrung darstellt).
Zum Beispiel 117
ist es eine permutapalindromische Zahl, da ihre Ziffern permutiert werden können 171
, was ein Palindrom ist.
Wir 10
denken, dass Zahlen wie keine permutapalindromischen Zahlen sind, obwohl sie 01 = 1
ein Palindrom sind. Wir setzen 0
voraus , dass die palindromische Permutation keine führende Null haben darf (als solche ist sie selbst nicht permutapalindromisch).
Zahlen, die bereits Palindrome sind, sind auch permutapalindrom, da das Permutieren von nichts gültig ist.
Eingänge und Ausgänge
N
kann entweder 0-indiziert oder 1-indiziert sein. Bitte geben Sie an, welche der beiden Antworten Ihre Antwort verwendet.- Die Eingabe kann
STDIN
als Funktionsargument oder in einer ähnlichen Sprache erfolgen. Die Ausgabe kann inSTDOUT
eine Funktion oder in eine ähnliche Sprache Ihrer Wahl geschrieben oder von dieser zurückgegeben werden. - Die Eingabe und Ausgabe muss in der Dezimalbasis erfolgen.
Testfälle
Die folgenden Testfälle sind 1-indiziert. Ihr Programm muss in der Lage sein, alle hier vorgestellten Testfälle in maximal 1 Minute zu bestehen.
N Output
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
42 181
100 404
128 511
256 994
270 1166
Wertung
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
quelle
10
)Antworten:
05AB1E ,
151413 BytesDank Emigna ein Byte gespart ! Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online! .
quelle
µNœvyJÂïQ}O__½
für 14.Brachylog, 19 Bytes
Probieren Sie es online!
Dauert etwa 17 Sekunden
N = 270
.Erläuterung
Hauptprädikat:
Prädikat 1:
quelle
Brachylog ,
2120 Bytes1 Byte dank Fatalize.
Haben Sie die Herausforderung für Brachylog entworfen?
Probieren Sie es online!
270 dauert hier etwa eine halbe Minute.
Prädikat 0 (Hauptprädikat)
Prädikat 1 (Hilfsprädikat)
quelle
Pyth, 14
Probieren Sie es hier aus oder führen Sie eine Test Suite aus
Erweiterung:
quelle
JavaScript (ES6), 99 Byte
Erläuterung:
quelle
f=
wenn Sie später darauf verweisenR, 145 Bytes
ungolfed
Im Wesentlichen - eine Funktion, die die Zugehörigkeit zu einer permutapalindromischen Menge überprüft und eine while-Schleife, die inkrementiert, bis das n-te Mitglied gefunden wird.
quelle
Python 2.7,
163154 Bytes:Einfach genug. Grundsätzlich wird eine
while
Schleife verwendet, um wiederholt Arrays zu erstellen, die permutapalindromische Zahlen enthalten. Der Bereich[1,Q)
bisQ
ist so groß, dass das Array dieInput
Anzahl der Elemente enthält . Anschließend wird das letzte Element in diesem Array ausgegeben.Probieren Sie es online! (Ideone)
quelle
Perl 6 , 66 Bytes
0 basierend
Erläuterung:
Prüfung:
quelle
Dyalog APL , 51 Bytes
Einseitig indiziert.
Beendet alle Testfälle sofort in TryAPL
quelle
a(n) <= 5n
?JavaScript (ES6), 92
Weniger golfen
Prüfung
quelle
Javascript (mit externer Bibliothek - Enumerable) (142 Bytes)
Link zu lib: https://github.com/mvegh1/Enumerable/
Codeerklärung: _.Sequence erstellt eine Aufzählung für eine Anzahl von "n" Elementen, basierend auf dem Prädikat der Signatur ("i" -Teration
, "ein" kumuliertes Array). Wandeln Sie die aktuelle Iteration in eine Zeichenfolge um und erstellen Sie daraus eine Aufzählung aller Permutationen. Prüfen Sie, ob eine der Permutationen den Test erfüllt, nicht mit "0" zu beginnen, und ob die Umkehrung der Permutation der Permutation entspricht. Gibt das letzte Element in der Sequenz zurück, da dies der gewünschte Ausgang gemäß OP istquelle
Python 2, 93 Bytes
1-indiziert. Abhängig von Ihrem System kann der letzte Testfall die zulässige Rekursionstiefe überschreiten.
Berechnet keine Permutationen. Verwendet stattdessen die Tatsache, dass zwei Zeichenfolgen Permutationen sind, wenn sie beim Sortieren gleich sind. Um zu testen, ob eine Zahl permutapalindrom ist, prüfen Sie, ob ihre sortierten Ziffern den sortierten Ziffern eines Palindroms bis zu einer Grenze entsprechen.
96 Bytes:
1-indiziert. Abhängig von Ihrem System kann der letzte Testfall die zulässige Rekursionstiefe überschreiten.
Dies betrachtet keine Permutationen und verwendet stattdessen die folgende Charakterisierung:
Dies ist der Fall, weil ein Palindrom Ziffern vom Anfang bis zum Ende mit Ausnahme einer möglichen mittleren Ziffer koppeln muss. Die Ausnahme ergibt sich aus der Anforderung, dass die führende Ziffer ungleich Null ist. Daher muss eine Ziffer ungleich Null zweimal angezeigt werden, es sei denn, die Zahl ist einstellig.
quelle
Haskell,
8987 Bytesquelle
C 254 Bytes
quelle