Einführung
Nehmen wir als Beispiel die Nummer 7
. Wir duplizieren dies und platzieren 7 Leerzeichen dazwischen. Wir bekommen das:
7_______7
Danach werden wir die Zahl verringern, bis keine Leerzeichen mehr übrig sind. Für die Nummer 7 bekommen wir folgendes:
7_______7
6543210
Dann verschmelzen wir einfach die beiden, also:
7_______7
6543210 becomes
765432107
Dies wird für N = 7 ausgegeben .
Sieht einfach aus, oder? Nehmen wir nun N = 12 . Wir fügen wieder 12 Leerzeichen zwischen den beiden Zahlen ein, was uns ergibt:
12____________12
Dann starten wir die Dekrementierung:
12____________12
111098765432
Und das gibt uns schließlich:
1211109876543212
Wie Sie sehen, endet der absteigende Teil bei 2 und nicht bei 0 .
Aufgabe
Bei einer Ganzzahl größer als 1 wird die absteigende Reihenfolge wie oben gezeigt ausgegeben.
Testfälle
Input Output
2 2102
3 32103
4 432104
5 5432105
6 65432106
7 765432107
8 8765432108
9 98765432109
10 10987654321010
11 111098765432111
12 1211109876543212
13 13121110987654313
14 141312111098765414
15 1514131211109876515
20 201918171615141312111020
99 9998979695949392919089888786858483828180797877767574737271706968676665646362616059585756555453525150499
100 1009998979695949392919089888786858483828180797877767574737271706968676665646362616059585756555453525150100
Das ist Code-Golf , also gewinnt die Einsendung mit der geringsten Anzahl von Bytes!
Antworten:
CJam,
1110 BytesProbieren Sie es online aus. Angenommen, die Eingabe enthält eine nachgestellte Newline. (Danke an @ jimmy23013 für das Speichern eines Bytes.)
Erläuterung
Am Ende jeder Zeile steht, wie der Stapel an diesem Punkt aussieht (am
4
Beispiel).quelle
Julia, 30 Bytes
Dies ist eine anonyme Funktion, die eine Ganzzahl akzeptiert und eine Zeichenfolge zurückgibt. Um es aufzurufen, weisen Sie es einer Variablen zu.
Wir konstruieren und verknüpfen die absteigende Folge von n -1 bis 0 und nehmen die ersten n Zeichen aus der resultierenden Zeichenfolge. Wir stellen die Eingabe als Zeichenfolge voran und hängen sie an.
Überprüfen Sie alle Testfälle online
quelle
Haskell, 44 Bytes
Anwendungsbeispiel:
f 14
->"141312111098765414"
.quelle
JavaScript (ES6),
5552 ByteBearbeiten: 3 Bytes dank @WashingtonGuedes gespeichert.
quelle
.keys()
..keys()
ist wie.reduce
. Das richtige Werkzeug für den Job, aber Sie finden immer etwas, das sich in diesem speziellen FallPython 2,
82725853 BytesProbieren Sie es hier aus!
Vielen Dank an @Alex, der mir das beigebracht hat
repr(x)
=`x`
mir ein paar Bytes gespart zu haben!quelle
Pyth, 11 Bytes
Zwei alternative Versionen, die alle auch 11 Bytes umfassen ( seufz ):
Probieren Sie es hier aus.
quelle
Japt, 13 Bytes
Online testen!
Wie es funktioniert
quelle
Gelee, 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Retina 98,
110Längste Antwort bisher: - /
Probieren Sie es online aus.
quelle
Vitsy, 35 Bytes
Da Vitsy nicht weiß, wie man aus Zahlen Strings macht, habe ich es implementiert, die Länge der Zahl in Dezimalstellen in der zweiten Zeile zu finden.
Erläuterung:
Probieren Sie es online!
Ausführlicher Modus für lols:
quelle
L
jetzt korrigiert (die Frage wird jedoch nicht aktualisiert).public static void
Methoden. Das Hauptprogramm beendet das Programm, wenn es beendet ist. Die Anweisungen sind in einem Typ abgelegtArrayList<ArrayList<String[]>>
, in dem jede Zeile a istString[]
. Jede Methode wird an der Newline nach dem Laden der Datei aufgeteilt, wodurch die Hauptmethode von allen anderen Methoden getrennt wird.String
s Anweisungen,String[]
s sind Methoden (die erste ist die Hauptmethode) undArrayList<String[]>
s sind Klassen (die erste ist die Hauptklasse), richtig?Pure Bash, 49
Oder:
Bash + Coreutils, 48
quelle
12
, dann die ersten 12 Zeichen von11..0
(oder111098765432
) und schließlich12
Retina, 63 Bytes
Es gibt noch einiges an Platz zum Golfen ...
Probieren Sie es online!
quelle
$0
in auch$0$*
optional , wenn das vorhergehende Token ein Literal ist, das keine Zahl ist (wie deiney
) ... da ich das sehe, könnte ich das tatsächlich implementieren.MATL , 15 Bytes
BEARBEITEN (20. Mai 2016) Der Code im Link wird
Xz
anstelle von verwendetXv
, in der Sprache , auf die jüngsten Veränderungen zurückzuführen ist .Probieren Sie es online!
quelle
Java, 93 Bytes
quelle
Ruby, 41 Bytes
quelle
Milchstraße 1.6.5 ,
2725 BytesErläuterung
Verwendung
quelle
I'::%{K£BCH=}<OHG<+<;+!
in eine UTF-8-codierte Datei, aber es funktioniert nicht.Perl 6 , 31 Bytes
Verwendung:
quelle
Perl, 43 + 2 = 45 Bytes
Ich bin froh, dass ich es nicht benutzt habe
reverse
und auch nichtsubstr
:Benötigt die
-pl
Fahnen.Wie es funktioniert:
quelle
C
130 bis125 BytesUngolfed Version (mit Erklärung):
Die implizite Umwandlung von double in int
h=floor(...)
ermöglichte die#define p(x)
Speicherung von 5 Byte.Test auf Ideone.
quelle
R, 67 Bytes (als Funktion)
R, 63 Bytes (Eingabe von STDIN)
quelle
Brainfuck, 265 Bytes
Dies funktioniert nur mit Zahlen <10
Probieren Sie die Golfversion hier aus :
Ungolfed. Probieren Sie es hier aus :
quelle
,>>++++++[<++++++++>-]<[-<->]<
Dies kann 48 mit kürzerer Codelänge subtrahieren