Ein einfaches:
Nehmen Sie eine positive ganze Zahl n kleiner als 1000 und geben Sie die ganzen Zahlen von 1 bis n aus, die mit den ganzen Zahlen von n bis 1 verschachtelt sind . Sie müssen die Zahlen so verketten, dass sie ohne Trennzeichen angezeigt werden.
Testfälle:
n = 1
11
n = 4
14233241
n = 26
12622532442352262172081991810171116121513141413151216111710189198207216225234243252261
n = 100
110029939849759669579489399210911190128913881487158616851784188319822081218022792378247725762675277428732972307131703269336834673566366537643863396240614160425943584457455646554754485349525051515052495348544755465645574458435942604161406239633864376536663567346833693270317130722973287427752676257724782379228021812082198318841785168615871488138912901191109299389479569659749839921001
Dies ist Codegolf, daher gewinnt die kürzeste Übermittlung in Bytes in jeder Sprache. Erklärungen sind erwünscht.
f'{x}{n-~-x}'
lambda n:''.join('x+1'+'n-x'for x in range(n))
für 46 Bytes (ersetzen Sie das'
in der Liste enthaltene Verständnis durch Backticks)`\`x+1\``
rendert nach`x+1`
-5 Dank an Ørjan Johansen
Haskell , 33 Bytes
Probieren Sie es online!
quelle
do
Ausdruck ist kürzer als>>=
plus ein Lambda. (2) Dieshow
s können jedoch unter Verwendung von kombiniert werden>>=show
.Bash , 25 Bytes
Probieren Sie es online!
Druckt die absteigende Reihenfolge, die Anzahl der Zeilen erhöht sich und printf verbindet die Zeilen
Leerzeichen begrenzt, 20 Bytes: seq $ 1 -1 1 | nl | xargsquelle
seq $1 -1 1|nl|tr -d ' \n\t'
8 Bytes mehrtime printf %s'seq 1000000 -1 1|nl'; grep name /proc/cpuinfo
real 0m7.985s user 0m6.092s sys 0m0.392s model name : Intel(R) Pentium(R) D CPU 3.00GHz model name : Intel(R) Pentium(R) D CPU 3.00GHz
R, 35 Bytes
Probieren Sie es online aus
rbind(1:n,n:1)
Erstellt eine 2-Zeilen-Matrix mit 1 bis n in der ersten Zeile und n bis 1 in der zweiten. Diecat
Funktion reduziert diese Matrix und liest jede Spalte aus.quelle
n
die Befehlszeile eingeben muss (anstatt über stdin zu übergeben).05AB1E ,
65 BytesEs wurde ein Byte mit dem neuen integrierten Interleave gespeichert, wie von rev vorgeschlagen
Probieren Sie es online!
Erläuterung
quelle
LÂ.ιJ
.CJam , 10 Bytes
Probieren Sie es online!
Erläuterung
quelle
Ruby , 29 Bytes
Erläuterung:
Probieren Sie es online!
quelle
Leerzeichen , 71 Bytes
Probieren Sie es online!
Erläuterung
Die ersten Anweisungen sind erforderlich, um den Stapel korrekt einzurichten. Die Whitespace-Eingabebefehle schreiben in den Heap, sodass wir b (den Eingabewert) zurück in den Stapel kopieren müssen. Wir beginnen mit a = 0, da es kürzer ist, 0 anstelle von 1 zu deklarieren (spart ein Byte) und wir nur die Inkrement-Anweisung neu anordnen müssen, um damit fertig zu werden. Danach schleifen und inkrementieren wir einfach a, geben a aus, geben b aus, dekrementieren b, bis b 0 erreicht (überprüft nach dem Dekrementieren).
quelle
Haskell,
654847 BytesDank Laikoni 1 Byte gespart:
6 Bytes gespart dank nimi:
Vorherige Antwort und Erklärung:
Hier gibt es bereits eine bessere Antwort von Haskell, aber ich bin neu sowohl bei Haskell als auch beim Code-Golfen, also kann ich es auch posten :)
Diese Funktion zippt die Liste [1..n] mit der Umkehrung, was zu einer Liste von Tupeln führt.
Dann wird
concatMap
ein Lambda auf diese Liste von Tupeln abgebildet, was zu einer Liste von Listen führt ...... und verkettet es.
Anschließend
concatMap
wirdshow
der Liste ein endgültiger Wert zugeordnet und zu einer einzelnen Zeichenfolge verkettet.f 26 "12622532442352262172081991810171116121513141413151216111710189198207216225234243252261"
quelle
=<<
ist das gleiche (innerhalb der Liste Monade) , wieconcatMap
:f n=show=<<(\(l,r)->[l,r])=<<zip[1..n][n,n-1..1]
.n
in fallen lassen[1..n]
: Versuchen Sie es online!Pyth, 7 Bytes
Probieren Sie es online aus: Demonstration
Erläuterung:
quelle
Oktave, 29 Bytes
Probieren Sie es online!
quelle
Perl 6 , 20 Bytes
Probier es aus
Bei einer Eingabe von 100000 dauert dies ungefähr 10 Sekunden, einschließlich des Zusammenstellens und Druckens der Ausgabe.
Erweitert:
Das
Z~
braucht der,~
weil es sonst eine Liste von Listen erzeugt, die sich mit Leerzeichen auszeichnen.Es ist nicht erforderlich, den Bereich ab 1 zu begrenzen, da er
Z
stoppt, wenn eine der Eingabelisten abläuft.Das spart zwei Bytes (ein Leerzeichen würde danach benötigt
$_
)quelle
Java 61 Bytes
quelle
(int n)->{//for loop}
sollten also hier funktionieren.System.out.print()
in die letzte Anweisung der for-Schleife einfügen, dies wird jedoch kompliziert, da Sie siei
zweimal verwenden (und Sie müssen sie im Ausdruck erhöhen).Gelee , 5 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Röda ,
2119 BytesProbieren Sie es online!
Dies ist eine anonyme Funktion, die Eingaben aus dem Stream entgegennimmt.
Erläuterung
quelle
Clojure, 61 Bytes
Tut buchstäblich was gefragt wird. Ich glaube, es kann durch eine weniger triviale Lösung übertroffen werden.
Sehen Sie es online
quelle
Aceto ,
2522 BytesErläuterung:
Wir lesen eine ganze Zahl und legen sie auf zwei Stapel.
Zum einen rufen wir range_up (
Z
) auf, zum anderen range_down (z
) und setzen dann eine Fangmarke , um später an diesen Ort zurückkehren zu können:Wir prüfen dann, ob der aktuelle Stack leer ist und beenden ihn, wenn dies der Fall ist:
Andernfalls drucken wir aus beiden Stapeln und springen zur Fangmarke zurück:
quelle
R, 41 Bytes
pryr::f()
Erstellt eine Funktion, die eine Eingabe annimmt. Durchläuft1:x
und druckt jedes Element von1:x
zusammen mit jedem Element vonx:1
. Druckt nach STDOUT.quelle
pryr
function(x)
:)Brachylog ,
109 BytesProbieren Sie es online!
Erläuterung
quelle
MATL,
13119 Bytes2 Bytes gespart dank @Luis
Probieren Sie es bei MATL Online aus
Erläuterung
quelle
PHP,
363529 BytesEin Byte gespart dank Jörg Hülsermann.
Dank Christoph sechs Bytes gespart.
quelle
for(;$argn;)echo++$i,$argn--;
?Scala, 43 Bytes
Es ist nicht das Beste, aber es ist mein erster Code Golf.
quelle
V , 20 Bytes
Probieren Sie es online!
Erklären:
quelle
Cubix , 17 Bytes
Probieren Sie es online!
kubisch:
Drückt
1
, liest die Eingabe (I
) ein und tritt dann in die Schleife ein, die die Oberseite des Stapels vertauscht, gibt sie aus, inkrementiert, vertauscht, gibt die Oberseite des Stapels aus, dekrementiert und stoppt, wenn die Oberseite des Stapels 0 ist.quelle
K (ngn / k) , 16 Bytes
Probieren Sie es online!
quelle
r,'|r:
->+|:\
MathGolf , 5 Bytes
Probieren Sie es online!
Erläuterung:
quelle
╒{ïí,
,╒{ïk,
,╒{íï-
,╒{kï-
,╒{┐í,
,╒{┐k,
,╒x{î\
,{îïí,
,{îïk,
,{îíï-
,{îkï-
,{î┐í,
,{î┐k,
. Ich konnte jedoch kein Programm mit einer Länge von 4 oder weniger finden. Ich habe noch keine vollständige Suche durchgeführt, aber es ist sehr wahrscheinlich, dass 5 Bytes für MathGolf optimal sind.Common Lisp,
6354 BytesProbieren Sie es online!
quelle
Mouse-2002 ,
32-30Bytes-2 verschoben bedingt zum Schleifenstart
(z.^ ... )
statt(... z.0>^)
Probieren Sie es online!
Erläuterung:
quelle
Eigentlich 9 Bytes
Probieren Sie es online! oder führen Sie alle Testfälle aus
Erläuterung:
quelle