Schreiben Sie eine Funktion (oder ein gleichwertiges Unterprogramm), um ein einzelnes Argument mit ganzzahligem Wert zu akzeptieren und einen (ähnlich typisierten) Wert zurückzugeben, der durch Umkehren der Reihenfolge der 10-stelligen Basis des Arguments ermittelt wurde.
Beispiel: 76543 gibt 34567 zurück
Antworten:
HTML
217 Zeichen (1 Zeichen, wenn ich frech bin ...)Ersetzen Sie
n
mit Ihrer Nummerquelle
Your search -
keine Dokumente gefunden.data:text/html,&%238238;egnahcxEkcatS olleH
Python
int(str(76543)[::-1])
BEARBEITEN:
Kürzere Lösung wie von @gnibbler vorgeschlagen:
oder, wenn oben nicht klar ist:
quelle
s[::-1]
ist viel schneller als''.join(reversed(s))
Universell (sprachenunabhängig / unabhängig) )
Wenn Sie nur Zahlen verwenden möchten (Konvertieren der Zahl in einen String vermeiden) und keine bestimmte Bibliothek verwenden möchten (um für jede Sprache universell zu sein):
Das ist Python, aber es kann in jeder Sprache gemacht werden, weil es nur eine mathematische Methode ist.
quelle
mod
mit%
, es ist gültig Python;)y=y*10+x%10
....a - (n * int(a/n))
anstelle von verwendena mod n
. Wenn Sie hier nachsehen , ist die Modul-Operation in jeder Sprache anders implementiert. (Siehe Tabelle rechts.)Perl 6
oder:
für dynamisch getippten Code.
Zahlen erhielten Zeichenkettenmethoden aufgrund des Sprachdesigns.
quelle
J - 6 Zeichen + Variable
Wo y ist dein Wert.
quelle
|.&.":
"reverse under do", was so ziemlich eine wörtliche Übersetzung der Aufgabe ist.APL (3)
Verwendung:
quelle
PHP, 9 Zeichen
Um es kurz zu machen, wo
N
ist eine Konstante:quelle
Befunge (3 Zeichen)
Komplettes lauffähiges Programm:
Wo
N
ist deine Nummer? Regeln sagen "akzeptiere ein einzelnes Argument mit ganzzahligem Wert"; In Befunge können Sie nur ganze Zahlen von 0 bis 9 eingeben.quelle
Sprachunabhängig / Mathematik
Inspiriert von Kiril Kirovs Antwort oben. Ich wurde neugierig auf die mathematischen Eigenschaften der Umkehrung einer Zahl und beschloss, ein wenig nachzuforschen.
Wenn Sie den Unterschied
n - rev(n)
für natürliche Zahlenn
in einer Basis zeichnenr
, erhalten Sie Muster wie das folgende ((n - rev(n)) / (r - 1)
fürr=10
, inr
Spalten eingeschlossen, bedeutet rot eine negative Zahl):Diese Sequenz könnte als solche erzeugt werden (Pseudocode):
Wenn Sie diese Werte in einer Liste / einem Array speichern,
n - arr[n]
erhalten Sie die umgekehrte Form vonn
. Um dies "mathematisch zu golfen", möchten wir im Idealfall einen Ausdruck in geschlossener Form, der uns den n-ten Wert in der Sequenz gibt, damit wir einen Ausdruck in geschlossener Form zur Lösung der gesamten Aufgabe haben können. Leider konnte ich einen solchen Ausdruck nicht finden ... aber es sieht so aus ob es möglich wäre. :(Also ja, nicht so sehr ein Code-Golf als eine mathematische Kuriosität, aber wenn es einen Ausdruck in geschlossener Form der obigen Sequenz gibt, könnte es tatsächlich nützlich sein, wenn PL-Golf eingereicht wird.
quelle
Haskell,
2824 Zeichenquelle
f=read.reverse.show.(+0)
?(+0)
: Legit Mann! Technisch gesehen brauchen Sie das überhaupt nicht.(+0)
, daf
es polymorpher wäre als das, was das Problem erfordert (es ist erlaubt, eine ähnlich typisierte Ausgabe zurückzugeben). Ich würde diese 5 Charaktere abschneiden.Vim
17 Zeichenquelle
Scala - 33 Zeichen
quelle
Rubin (14)
quelle
.to_s.reverse.to_i
, um mit spec zu entsprechen.Es ist möglich, eine Zahl in eine Zeichenfolge umzuwandeln, die Zeichenfolge dann umzukehren und diese Zeichenfolge dann wieder in eine Zahl umzuwandeln. Diese Art von Funktion ist wahrscheinlich in allen Sprachen verfügbar. Wenn Sie nach einer mathematischeren Methode suchen, könnte dies helfen:
quelle
1111111119
Python 3+
Funktionsform: 28 Zeichen
(Unter-) Programmform: 25 Zeichen
Ich halte einige der anderen Python-Beispiele für betrügerisch oder zumindest billig, da sie fest codierte Eingaben verwenden und / oder die Anforderungen nicht vollständig erfüllen.
quelle
Golfscript, 5 Zeichen
Dies nimmt ein Argument auf den Stapel und belässt das Ergebnis auf dem Stapel. Ich nutze die "Unterprogramm" -Option in der Spezifikation: Wenn Sie auf einer Funktion bestehen, verbleiben vier Zeichen mehr auf dem Stapel:
quelle
`-1%~
eher gemeint als`-1$~
(und ich habe mir die Freiheit genommen, Ihre Antwort zu bearbeiten, um dies zu sagen).In Shell-Skripten:
Hoffe das war nützlich :)
quelle
rev<<<yournumber
, zum Beispielrev<<<132
(für bash / zsh, nicht pro POSIX obwohl)rev
genug ist , stellt sich die Frage nicht sagen , es hat eine Funktion sein. Sie können esrev
mit einer eingebauten Funktion vergleichen, auch wenn es keine ist.Ein bisschen spät aber
APL, 3
Wenn Sie auf einer Funktion bestehen
quelle
Mathematica, 14 Bytes
Dies ist kein Wettbewerb, da diese Funktion erst in der Version 10.3 der letzten Woche hinzugefügt wurde, aber der Vollständigkeit halber dachte ich, ich würde die einzige (ich denke?) Funktion hinzufügen, die für diese Aufgabe eingebaut ist.
quelle
In Java können Sie Folgendes tun. Beachten Sie, dass dies in String und zurück konvertiert wird und keine mathematische Lösung ist.
quelle
Lua
Zahlen und Zeichenfolgen sind austauschbar, das ist also trivial
quelle
Dieser nimmt WIRKLICH eine Eingabe entgegen, im Gegensatz zu einigen anderen:
Python übrigens
quelle
Actionscript
43 Zeichen. num als Parameter für die Funktion:
quelle
Groovy
quelle
Perl, 11 Zeichen
Damit
p
dies funktioniert, wird das Flag benötigt, das in der Zählung enthalten ist.Verwendung:
quelle
p
Flagge ist in der Zählung enthaltenClojure (42 Zeichen)
Anwendungsbeispiel:
gibt 12389 zurück
quelle
Common Lisp - 60 Zeichen
bekommst du 9724.
quelle
(first(list
?parse-integer
gibt die Nummer bereits zurück.K, 3 Bytes:
Evaluieren Sie (
.
) die Umkehrung (|
) des Umwandelns in einen String ($
).Anwendungsbeispiel:
quelle
rs , 20 bytes
Technisch gesehen zählt das nicht (rs wurde früher in diesem Jahr erstellt), aber ich habe keine anderen auf Regex basierenden Antworten gesehen, und ich fand das ordentlich.
Live-Demo.
Erläuterung:
Fügen Sie ein Pfundzeichen am Anfang der Zeichenfolge ein. Dies wird als Marker verwendet.
Stellen Sie das letzte Zeichen der Hauptzeichenfolge fortlaufend in den Bereich vor der Markierung, bis keine Zeichen mehr übrig sind.
Entfernen Sie den Marker.
quelle
mIRC 4,45 (35 Bytes)
quelle