Zählen Sie bei einer nicht negativen Ganzzahl n alle palindromischen Zahlen (in Dezimalzahlen) zwischen 0 und n (einschließlich Bereich) auf. Eine palindromische Zahl bleibt gleich, wenn ihre Ziffern umgekehrt werden.
Die ersten palindromischen Zahlen (in Basis 10) sind hier angegeben :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494, 505, 515, ...
Dies ist ein Code-Golf, bei dem der Preis an die wenigsten Charaktere geht. Die palindromischen Zahlen sollten eine pro Zeile an stdout ausgegeben werden. Das Programm sollte n von der Kommandozeile oder stdin lesen.
n
Teil des Sortiments einzuschließen?Antworten:
Golfscript, 15 Zeichen
quelle
Perl 5.10, 29 (oder 39) Zeichen
Muss die
say
Funktion aktiviert sein. 29 Zeichen, wenn Sie das für kostenlos halten, andernfalls 39 hinzufügenuse 5.010;
. Argument zu STDIN.Perl, 35 Zeichen
unter Verwendung der alten Perlgolf-Konvention,
#!perl
die nicht gezählt wird, aber alle darauf folgenden Flags sind.Perl, 36 Zeichen
Wenn sich keiner der anderen qualifiziert.
quelle
$/
ist das Trennzeichen für Eingabedatensätze, das standardmäßig Zeilenumbruch verwendet. Es ist nur ein bisschen kürzer als wörtlich"\n"
.map{say if$_==reverse}0..<>
-E
anstelle von verwenden-e
, erhalten Siesay
kostenlos.Befunge
320313303 Zeichen(einschließlich bedeutender Zeilenumbrüche und Leerzeichen)
Ich frage mich, ob ich das durch Umleiten der Pfade verkleinern könnte ...
Bearbeiten: Den oberen Teil neu gestalten, um eine zusätzliche Linie zu vermeiden.
quelle
Perl 5.10 - 27 Zeichen
map{say if$_==reverse}0..<>
Liest das Argument von stdin.
quelle
Ruby 1.9, 39 Zeichen
Eingabe (darf nicht mit einem Zeilenumbruch abgeschlossen werden) über stdin. Beispielaufruf:
40 Zeichen für eine Version, die Befehlszeilenargumente verwendet:
quelle
p
anstelle von verwendet wirdputs
.irb(main):023:0> p (?0..gets).select{|i|i==i.reverse} 1 ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88", " 99"] => ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88" , "99"]
Der folgende Code funktioniert für mich. Könnenp ('0'..gets[0..-2]).select{|i|i==i.reverse}
Sie Ihren Code erklären ?p
undputs
sind nicht äquivalent, in der Tat unterbrichtp
die Ausgabe, da jedes Element in eine neue Zeile geschrieben wird, wenn es mit einem Array aufgerufen wird , währendp
einfach aufgerufen wird.to_s
.J , 20 Zeichen
quelle
,"0
.,.
funktioniert auchPython,
5751 ZeichenVerwendung:
quelle
for i in range(input()):if`i`==`i`[::-1]:print i
print
und einfach tunif`i`==`i`[::-1]:i
(ich sage dies, weil die Scala-Lösung davon abhängt).Perl> 5.10: 25 Zeichen
quelle
APL (
2517)quelle
Javascript
122108107 Zeichen ...Ich bin mir sicher, dass dies mehr Golf gespielt werden kann - ich bin neu in diesem Bereich!
oder
quelle
var
s nicht erforderlich, Sie können die Dinge einfach global machen. Auchprompt()
nicht streng Parameter benötigen.prompt()
, um ein Semikolon zu speichern :n=prompt(o=[]);
.var i=0
, die dievar
in Ihrem entfernt haben kannfor
.i++<n
verglichen . Somit läuft es den ganzen Weg nach . Wenn Sie bei anhalten möchten, würden Sie stattdessen verwenden.i<n
i
i=n
i=n-1
++i<n
alert(o.join(" "))
mussalert(o.join("\n"))
den Spezifikationen entsprechen. Fügen Sie Ihrer Charakterzahl 1 hinzu, wenn Sie dies beheben.Perl - 43 Zeichen
Dies ist mein erster Versuch, Code-Golf zu spielen, daher bin ich mir ziemlich sicher, dass ein Perl-Profi Golf spielen könnte.
quelle
Haskell 66 Zeichen
quelle
PHP
6458$ _GET ['n'] wurde für die Befehlszeileneingabe in $ argv [1] geändert.
quelle
Scala 59
quelle
readInt
online durch eine konkrete Nummer ersetzen .PHP,
595553 ZeichenVerwendung
Edit: danke Thomas
quelle
echo "$i\n"
, um zu erhaltenecho"$i\n"
. Das erspart Ihnen ein paar Zeichen. Wenn Sie frech sein möchten, können Sie auch\n
für `` wechseln und ein Zeichen speichern.C, 98 Zeichen
quelle
k (23 Zeichen)
quelle
Mathematica 61
quelle
Befunge, 97 (Rastergröße 37x4 = 148)
Haben Sie eine bessere Antwort auf diese Frage. Dies ist speziell Befunge-93; Mit Befunge-98 könnte ich es wahrscheinlich noch kompakter machen. Ich werde das in eine zukünftige Bearbeitung aufnehmen.
Da Sie in Befunge keine Zeichenfolgen bearbeiten können, war das Beste, was ich tun konnte, die Umkehrung der Ziffern jeder Zahl zu berechnen (was ich überrascht bin, dass ich ohne
p
und auskommen konnteg
) und sie mit der ursprünglichen Zahl zu vergleichen. Die Ziffernumkehr nimmt den größten Teil des Codes ein (im Grunde die gesamte dritte und vierte Zeile).Beachten Sie, dass das Programm in seiner jetzigen Form die Zahlen von der Eingabe bis 0 rückwärts druckt. Wenn dies eine große Sache ist, lassen Sie es mich wissen. (Die Herausforderung besteht nur darin, sie aufzuzählen, nicht speziell in aufsteigender Reihenfolge.)
quelle
\n
alleine geschlossen werden , sodass sie 94 Byte lang sind. Ich denke nicht, dass Ihre "Gittergröße" eine besondere Relevanz hat.05AB1E , 5 Bytes (nicht konkurrierend)
Die Sprache datiert die Herausforderung nach und ist daher nicht konkurrierend . Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online aus! .
quelle
LʒÂQ
ist 4, aber immer noch nicht konkurrierend.Brachylog (2), Frage nach den Sprachdaten:
Mit dem in der Frage angegebenen E / A-Format 8 Bytes
Probieren Sie es online aus!
Mit modernen PPCG-E / A-Regeln 4 Bytes
Probieren Sie es online aus!
Dies ist eine Funktion, die alle Ausgaben generiert, kein vollständiges Programm wie im vorherigen Beispiel, und daher nicht der angegebenen Spezifikation entspricht, aber ich dachte, ich würde zeigen, wie das Programm aussehen würde, wenn die Frage geschrieben worden wäre nach modernen E / A-Standards (die die Verwendung von Funktionen und die Ausgabe über Generatoren ermöglichen).
Erläuterung
Für die vollständige Programmversion erstellen wir eine temporäre Variable
A
, um die Ausgabe zu speichern, sie explizit zu kennzeichnen (dies erfolgt implizit für das Hauptprädikat eines Programms) und verwenden die bekannteẉ⊥
Technik zum Ausgeben der Elemente eines Generators an die Standardausgabe.quelle
Python
quelle
Groovy, 83
quelle
Q (34 Zeichen)
Übergeben Sie n anstelle von n + 1 als Argument für diese Q-Lösung.
quelle
Q, 32
quelle
Q (33)
Wahrscheinlich ein besserer Weg, dies zu tun, aber trotzdem, Beispielverwendung (Sie geben n + 1 ein, um zu n zu gelangen):
Vorschlag von tmartin, bringt es auf 29:
Gleiche Verwendung.
quelle
Python, 106 Zeichen
Verwendung:
quelle
C # (
217214191 Zeichen)Golfversion:
Lesbar:
Dies druckt Palindrome in absteigender Reihenfolge unter Verwendung des Operators n -> 0 aus. (wenn n auf 0 geht).
* Die bearbeitete Version ersetzt do ... während mit while und spart 3 Zeichen, aber jetzt müssen Sie mit n + 1 eingeben.
* bearbeitet: Es wurde eine bessere Möglichkeit gefunden, Zeichenfolgen umzukehren, ohne sie in ein Array zu konvertieren:
Lesbar:
quelle
PHP 53
Kann 53 niedriger sein? Vier verschiedene Optionen:
Wenn du funky werden willst ...
PHP 47
Sie müssen den Fehlertext ignorieren. Die Palindromnummern werden jedoch weiterhin in der Befehlszeile ausgegeben.
quelle
Pyth, 11
Beispiel:
quelle