Prosty:
Weź dodatnią liczbę całkowitą n mniejszą niż 1000 i wyślij liczby całkowite od 1 do n przeplecione liczbami całkowitymi od n do 1 . Musisz połączyć liczby tak, aby pojawiały się bez żadnych separatorów między nimi.
Przypadki testowe:
n = 1
11
n = 4
14233241
n = 26
12622532442352262172081991810171116121513141413151216111710189198207216225234243252261
n = 100
110029939849759669579489399210911190128913881487158616851784188319822081218022792378247725762675277428732972307131703269336834673566366537643863396240614160425943584457455646554754485349525051515052495348544755465645574458435942604161406239633864376536663567346833693270317130722973287427752676257724782379228021812082198318841785168615871488138912901191109299389479569659749839921001
To jest golf golfowy, więc wygrywa najkrótsze przesłanie w bajtach w każdym języku. Wyjaśnienia są zachęcane.
f'{x}{n-~-x}'
lambda n:''.join('x+1'+'n-x'for x in range(n))
dla 46 bajtów. (zamień'
listę ze zrozumieniem na backticks)`\`x+1\``
renderuje do`x+1`
-5 dzięki Ørjan Johansen
Haskell , 33 bajty
Wypróbuj online!
źródło
do
Wyrażenie jest krótsze niż>>=
plus lambda. (2)show
Można jednak łączyć za pomocą>>=show
.Bash , 25 bajtów
Wypróbuj online!
Wyświetla malejącą sekwencję, zwiększa liczbę linii i printf łączy linie
Rozdzielane spacją, 20 bajtów: seq 1 -1 1 1 | nl | xargsźródło
seq $1 -1 1|nl|tr -d ' \n\t'
8 bajtów więcejtime 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 bajtów
Wypróbuj online
rbind(1:n,n:1)
tworzy macierz 2-rzędową z 1 do n w pierwszym rzędzie i n do 1 w drugim.cat
Funkcja zwija tej matrycy, czytając w dół każdej kolumny.źródło
n
w wierszu poleceń (zamiast przejścia przez standardowe wejście ).05AB1E ,
65 bajtówZapisano bajt przy użyciu nowego wbudowanego przeplotu, jak sugeruje rev
Wypróbuj online!
Wyjaśnienie
źródło
LÂ.ιJ
.CJam , 10 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Ruby , 29 bajtów
Wyjaśnienie:
Wypróbuj online!
źródło
Biała spacja , 71 bajtów
Wypróbuj online!
Wyjaśnienie
Pierwsza para instrukcji jest potrzebna do poprawnego ustawienia stosu, polecenia wejściowe Whitespace zapisują na stos, więc musimy skopiować b (wartość wejściową) z powrotem na stos. Zaczynamy od a = 0, ponieważ krótsze jest zadeklarowanie 0 zamiast 1 (zapisuje bajt) i musimy tylko zmienić kolejność instrukcji inkrementacji, aby sobie poradzić. Następnie po prostu zapętlamy i zwiększamy a, wyprowadzamy a, wyprowadzamy b, zmniejszamy b, aż b osiągnie 0 (sprawdzane po zmniejszeniu).
źródło
Haskell,
654847 bajtów1 bajt zapisany dzięki Laikoni:
6 bajtów zapisanych dzięki nim:
Poprzednia odpowiedź i wyjaśnienie:
Jest już lepsza odpowiedź Haskella, ale jestem nowy zarówno w Haskell, jak i golfie, więc równie dobrze mogę to opublikować :)
Ta funkcja zamyka listę [1..n] z jej odwrotnością, w wyniku czego powstaje lista krotek.
Następnie używa
concatMap
do mapowania lambda na tę listę krotek, co daje listę list ...... i łączy to.
Następnie końcowe
concatMap
mapowanieshow
na listę i łączenie jej w pojedynczy ciąg.f 26 "12622532442352262172081991810171116121513141413151216111710189198207216225234243252261"
źródło
=<<
is the same (within the list monad) asconcatMap
:f n=show=<<(\(l,r)->[l,r])=<<zip[1..n][n,n-1..1]
.n
in[1..n]
: Try it online!Pyth, 7 bytes
Try it online: Demonstration
Explanation:
źródło
Octave, 29 bytes
Try it online!
źródło
Perl 6, 20 bytes
Test it
With an input of 100000 this takes roughly 10 seconds, including compilation and printing the output.
Expanded:
The
Z~
needs the~
because otherwise it generates a list of lists which will stringify with spaces.There is no need to limit the Range starting at 1, because
Z
stops when any of the input lists run out.This saves two bytes (a space would be needed after
$_
)źródło
Java 61 bytes
źródło
(int n)->{//for loop}
should work here.System.out.print()
in the last statement of the for loop, but it gets complicated because you are usingi
twice (and you need to increment it in the expression).Jelly, 5 bytes
Try it online!
How it works
źródło
Röda,
2119 bytesTry it online!
This is an anonymous function that takes input from the stream.
Explanation
źródło
Clojure, 61 bytes
Literally does what is asked. I believe it can be outgolfed by a less trivial solution.
See it online
źródło
Aceto,
2522 bytesExplanation:
We read an integer and put it on two stacks.
On one, we call range_up (
Z
), on the other range_down (z
), then we set a catch mark to be able to return to this place later:We then check if the current stack is empty and exit if so:
Otherwise, we print from both stacks and jump back to the catch mark:
źródło
R, 41 bytes
pryr::f()
creates a function that takes one input. Loops over1:x
and prints each element of1:x
along with each element ofx:1
. Prints to STDOUT.źródło
pryr
function(x)
:)Brachylog,
109 bytesTry it online!
Explanation
źródło
MATL,
13119 bytes2 bytes saved thanks to @Luis
Try it at MATL Online
Explanation
źródło
PHP,
363529 bytesSaved one byte thanks to Jörg Hülsermann.
Saved six bytes thanks to Christoph.
źródło
for(;$argn;)echo++$i,$argn--;
?Scala, 43 bytes
It's not the best but it's my first code golf.
źródło
V, 20 bytes
Try it online!
Explain:
źródło
Cubix, 17 bytes
Try it online!
cubified:
Pushes
1
, reads in the input (I
), then enters the loop which swaps the top of the stack, outputs it, increments, swaps, outputs the top of the stack, decrements, and stops if the top of the stack is 0.źródło
K (ngn/k), 16 bytes
Try it online!
źródło
r,'|r:
->+|:\
MathGolf, 5 bytes
Try it online!
Explanation:
źródło
╒{ïí,
,╒{ïk,
,╒{íï-
,╒{kï-
,╒{┐í,
,╒{┐k,
,╒x{î\
,{îïí,
,{îïk,
,{îíï-
,{îkï-
,{î┐í,
,{î┐k,
. However, I have not been able to find any program of length 4 or less. I haven't done a full search, but it is very probable that 5 bytes is optimal for MathGolf.Common Lisp,
6354 bytesTry it online!
źródło
Mouse-2002,
3230 bytes-2 moved conditional to start of loop
(z.^ ... )
instead of(... z.0>^)
Try it online!
Explanation:
źródło
Actually, 9 bytes
Try it online!, or run all test cases
Explanation:
źródło