Pokaż łańcuch małych gór z nieparzystą liczbą na górze!

19

Pierwszy wiersz składa się z ceil(n/2)elementów, w których każdy element to:<space><odd-number><space>

Druga linia składa się z ceil(n/2)elementów, ale każdy element jest / \tylko.

Możesz założyć n >= 0i n <= 10.

Przykłady

Wejście: 3

 1  3
/ \/ \

Wejście: 10

 1  3  5  7  9
/ \/ \/ \/ \/ \

Przykład w Pythonie 3, 103 bajty:

lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)]))

Najkrótszy kod w bajtach wygrywa :)

Sygmei
źródło
3
Czy możesz założyć, że wszystkie dane wejściowe będą mniejsze niż 11?
Niebieski,
Tak, wszystkie dane wejściowe będą mniejsze niż 11!
Sygmei,
8
Witamy na stronie! Naszym domyślnym kodowaniem jest liczenie w bajtach, a nie znakach. Jeśli chcesz to zmienić, to twój wybór. Polecam również Sandbox następnym razem :)
Erik the Outgolfer
Miałem na myśli bajty, masz rację! Czy w pobliżu jest dobry bajt?
Sygmei,
1
Jak konkretnie musimy obsługiwać białe znaki? Mówisz, że każdy element jest <space><odd-number><space>, ale przypadki testowe nie mają spacji po ostatniej nieparzystej liczbie. Czy to jest opcjonalne? Czy dane wyjściowe są dla n=0dwóch pustych wierszy?
xnor

Odpowiedzi:

12

05AB1E , 19 15 14 12 bajtów

05AB1E wykorzystuje kodowanie CP-1252 .
Zaoszczędzono 4 bajty dzięki Adnan .
Zaoszczędzono 2 bajty dzięki carusocomputing

ÅÉðìDg…/ \×»

Wypróbuj online!

Wyjaśnienie

ÅÉ               # list of uneven number up to input
  ðì             # prepend a space to each
    Dg           # get length of list
      …/ \       # push the string "/ \"
          ×      # repeat the string length-list times
           »     # join rows by spaces and columns by newlines
Emigna
źródło
JAK DŁUGO ÏBYŁO ?! To wydaje się bardziej przydatne.
Magic Octopus Urn
2
@carusocomputing Długo: p
Adnan
2
LDÉÏjest taki sam jak ÅÉi „ ýðìmożna go zastąpić ðì)»:).
Adnan
2
Możesz usunąć ), prawda?
Magic Octopus Urn
3
ÅÉðìDg…/ \×»używa Dgzamiast ¹;îinnego bajtu zapisu.
Magic Octopus Urn
11

Pyke, 16 bajtów

S2%idm+dJil*"/ \

Wypróbuj tutaj!

17 bajtów i więcej

S2%i`~Bd.:il*"/ \

Wypróbuj tutaj!

Wykorzystuje IMHO algorytm NIESAMOWITY do upewnienia się, że pierwszy wiersz jest poprawnie wyrównany.

S                 - range(1, input+1)
 2%               -  ^[::2]
   i              -   i = ^
    `             -    str(^)
     ~Bd.:        -     ^.translate("><+-.,[]", " ") <-- awesome bit here
          il      -  len(i)
            *"/ \ - ^ * "/ \"

Zastępuje to wszystkie znaki na liście łańcuchowej spacjami. ~Bzawiera wszystkie znaki w języku Brain **** i po raz pierwszy użyłem tej zmiennej.

Program `~Bd.:robi to:

`~Bd.: - input = [1, 3, 5, 7]
`      - str(input)  # stack now ["[1, 3, 5, 7]"]
 ~B    - "><+-.,[]"  # stack now ["[1, 3, 5, 7]", "><+-.,[]"]
   d   - " "         # stack now ["[1, 3, 5, 7]", "><+-.,[]", " "]
    .: - translate() # stack now [" 1  3  5  7 "]
niebieski
źródło
... to jest ... po prostu niesamowite? Wiesz, że właśnie pobiłeś 05AB1E i wszystkich, prawda?
Erik the Outgolfer
Próbowałem Galaretki; na pewno będzie znacznie dłużej.
Erik the Outgolfer
„Użyłem zestawu znaków BF, aby równomiernie
rozmieścić
To jest naprawdę sprytne :) Dobra robota
Sygmei
@ErikGolfer エ リ ッ ク ゴ ル フ ァ ー Nie bije 05AB1E.
Boboback
6

Python 2, 63 bajty

lambda n:' '.join(n%2*`n`for n in range(n+1))+'\n'+-~n/2*'/ \\'

Mała sztuczka dla pierwszego wiersza: nie wypisuje liczb parzystych, ale bierze je jako pusty ciąg znaków, co prowadzi do rozpoczęcia pustej spacji (byłoby tam 0) i podwójnych spacji między liczbami bez żadnych modyfikacji zakresu, minusem jest wiodąca przestrzeń w parzystej liczbie n

Pręt
źródło
6

Python 2 3, 67 65 63 60 bajtów

Nie ma tu nic szalonego, myślę, że pierwszą część można prawdopodobnie zrobić krócej, ale nie jestem pewien, jak to zrobić . Korzystam z faktu, że w tym przypadku -~n/2będzie działać ceil.

lambda n:-~n//2*' %d '%(*range(1,n+1,2),)+'\n'+-~n//2*'/ \\'

Poniżej przedstawiono alternatywne rozwiązania 61 i 65 bajtowe w Pythonie 2:

lambda n:-~n/2*' %d '%tuple(range(1,n+1,2))+'\n'+-~n/2*'/ \\'
lambda n:' '+'  '.join(map(str,range(1,n+1,2)))+'\n'+-~n/2*'/ \\'

Dzięki Rod za zapisanie 2 bajtów i Artyer za zapisanie kolejnego bajtu przez zmianę wersji :)

Kade
źródło
Jeśli przeniesiesz do Python 3, można zastąpić %(tuple(...))z %[*...], ale trzeba by zrobić-~n//2
Artyer
@Artyer Próbowałem tego, ale generuje wiele błędów. Myślę , że musiałbym przerzucić rangena listę, ponieważ 3 rangejest jak Python 2 xrange.
Kade
możesz także upuścić nawiasy otaczającetuple()
Rod
Możesz zrobić (*<iterable>,)rzutowanie na krotkę w Pythonie 3. To oszczędza 1 bajt po przejściu n/2na n//2Python 3.
Artyer
@Rod i Artyer dziękują! :)
Kade
6

JavaScript (ES6), 55 bajtów

f=n=>n%2?f(n-1).replace(`
`,` ${n} 
/ \\`):n?f(n-1):`
`
<input type=number min=1 max=10 oninput=o.textContent=f(this.value)><pre id=o>

Zwróć uwagę na spację na końcu drugiej linii.

Neil
źródło
Cholera, myślałem, że .replacemoże być lepiej, ale nie zadałem sobie trudu, aby sprawdzić ...
ETHproductions
Pytanie mówi "ty może zakładać ..."
Solomon Ucko
1
@ SolomonUcko HTML nie jest częścią odpowiedzi, służy jedynie zademonstrowaniu jego działania. Jako taki może równie dobrze ograniczyć wartość do 1–10, ponieważ w przeciwnym razie wynik nie byłby prawidłowy.
Neil,
Widzę. W przeciwnym razie musisz określić prawidłowe odstępy
Solomon Ucko
5

Python 2, 53 bajty

lambda n:" 1  3  5  7  9"[:-~n/2*3]+'\n'+-~n/2*"/ \\"

Korzysta z ograniczenia, n <= 10aby wygenerować górną linię, odcinając kawałek z zakodowanego łańcucha.

Wyjścia od 1 do 10 to

 1 
/ \
 1 
/ \
 1  3 
/ \/ \
 1  3 
/ \/ \
 1  3  5 
/ \/ \/ \
 1  3  5 
/ \/ \/ \
 1  3  5  7 
/ \/ \/ \/ \
 1  3  5  7 
/ \/ \/ \/ \
 1  3  5  7  9
/ \/ \/ \/ \/ \
 1  3  5  7  9
/ \/ \/ \/ \/ \

Dane wyjściowe dla 0 to dwie puste linie.

xnor
źródło
5

Vim, 73 59 56 bajtów

Jest to naprawdę wysoki bajt IMO dla czegoś, co wydaje się prostym problemem. Czuję, że brakuje mi czegoś oczywistego.

caw="/2*2
caw1357911/"
DYp:s;.;/ \\;g
k:s// & /g

Wypróbuj online!

Materiały niedrukowalne:

^Acaw^R=^R"/2*2      # Transform a number into the next odd number (3->5,4>5)
^[^Acaw1357911^[/^R" # Insert 1357911, delete everything after the number above
DYp:s;.;/ \\;g       # Duplicate the line, replace numbers with / \
k:s// & /g           # On the line above, add spaces around numbers
<trailing newline>
nmjcman101
źródło
Fajnie, zawsze głosuję vim! Jednak znaki niedrukowalne również liczą się jako bajty, więc to rozwiązanie naprawdę ma 73 bajty. Przepraszam za to!
DJMcMayhem
Mam jednak kilka wskazówek. 1) Jeśli użyjesz innego separatora do polecenia zastępczego, nie będziesz musiał uciekać przed ukośnikiem, więc możesz to zrobić :s;.;/ \\;g. 2) przy drugim poleceniu zastępowania możesz pozostawić wyszukiwanie puste, a ono użyje ostatniego wyszukiwania (tak się składa, że ​​jest takie samo). Ponadto &jest równy \0i jeden bajt krótszy. Więc dostajesz:s// & /g
DJMcMayhem
Dzięki! Miałem nadzieję, że zobaczę odpowiedź V, aby sprawdzić, czy zastosowałeś inne podejście do mniejszej liczby bajtów, ale to w porządku! Myślę, że pierwszy komentarz jest funkcją zapominania o aktualizacji linku Wypróbuj online. Drugi dostał 3 bajty, więc dziękuję!
nmjcman101
4

Mathematica, 65 bajtów

" "<>Range[1,#,2]~StringRiffle~"  "<>"
"<>"/ \\"~Table~⌈#/2⌉&

Funkcja anonimowa. Pobiera liczbę jako dane wejściowe i zwraca ciąg znaków jako dane wyjściowe. Znaki Unicode, odpowiednio, to U + 2308 LEWY SUFIT dla \[LeftCeiling]i U + 2309 PRAWY SUFIT dla \[RightCeiling].

LegionMammal978
źródło
4

WinDbg, 100 bajtów

.echo;.for(r$t1=1;@$t1<=2*@$t0+@$t0%2;r$t1=@$t1+2){j@$t1<=@$t0 .printf"\b %d \n",@$t1;.printf"/ \\"}

Wprowadzanie odbywa się poprzez ustawienie wartości w pseudorejestru $t0.

Wygląda na to, że najkrótszy jest tutaj wydrukować ciąg znaków podczas budowania, zamiast próbować go najpierw zbudować i wyświetlić całość. Miałbym krótsze rozwiązanie, gdyby WinDbg pozwolił mi pisać na adres 0.

Jak to działa:

.echo;                                            * Print a new line that'll be deleted
.for(r$t1=1; @$t1 <= 2*@$t0+@$t0%2; r$t1=@$t1+2)  * Enumerate 1 to 4*ceil($t0/2), count by 2
{
    j@$t1<=@$t0                                   * If $t1 <= $t0...
        .printf"\b %d \n",@$t1;                   * ...Print $t1 (and newline for last n)
        .printf"/ \\"                             * ...Else print the / \'s
}

Dane wyjściowe dla każdej wartości n:

0:000> .for(r$t0=0;b>@$t0;r$t0=@$t0+1){.printf"\n\nn=%d\n",@$t0; .echo;.for(r$t1=1;@$t1<=2*@$t0+@$t0%2;r$t1=@$t1+2){j@$t1<=@$t0 .printf"\b %d \n",@$t1;.printf"/ \\"}}


n=0



n=1
 1 
/ \

n=2
 1 
/ \

n=3
 1  3 
/ \/ \

n=4
 1  3 
/ \/ \

n=5
 1  3  5 
/ \/ \/ \

n=6
 1  3  5 
/ \/ \/ \

n=7
 1  3  5  7 
/ \/ \/ \/ \

n=8
 1  3  5  7 
/ \/ \/ \/ \

n=9
 1  3  5  7  9 
/ \/ \/ \/ \/ \

n=10
 1  3  5  7  9 
/ \/ \/ \/ \/ \
mleko
źródło
4

> <> (RYBY), 69 60 68 55 bajtów

5|v&+%1:,2
1->:?!v:
8~v!?l<on$o:*4
a&/o
1->:?!;"\ /"ooo

Wklej go do tego internetowego tłumacza!

Liczba 5 w pierwszym wierszu to wartość wejściowa (zakodowana na stałe jako 5, zastąpiona przez 0-a lub i dla danych wprowadzanych przez użytkownika).

Edycja 1: Przeniesiono umieszczenie nowego wiersza do pierwszego wiersza (było puste), aby zaoszczędzić ogółem 9 bajtów na nowym wierszu.

Edycja 2: Jak zauważył użytkownik 7150406, dane wyjściowe były niepoprawne (brak drukowania spacji), co zostało naprawione przez utratę 8 bajtów.

Edycja 3: całkowicie zmieniłem logikę, nie ma sensu sprawdzanie, czy liczba jest nieparzysta - raczej umieszczaj wszystkie liczby na stosie i usuwaj co drugi. Zapisano bajt 13!

Pelikan turkusowy
źródło
4

Java, 118 112 bajtów

Edycja: Zapisano 6 bajtów dzięki @peech

Gra w golfa:

String M(int n){String o=" ";int i=1;n+=1;for(;i<n;i+=2)o+=i+"  ";o+="\n";for(i=0;i<n/2;i++)o+="/ \\";return o;}

Nie golfowany:

public String M(int n)
{
    String o = " ";
    int i=1;
    n += 1;
    for (; i < n;i+=2)
        o += i + "  ";
    o += "\n";
    for (i = 0; i < n/2; i++)
        o += "/ \\";
    return o;  
}

Testowanie:

    OddMountains om = new OddMountains();
    System.out.println(om.M(1));
    System.out.println();
    System.out.println(om.M(3));
    System.out.println();
    System.out.println(om.M(5));
    System.out.println();
    System.out.println(om.M(7));
    System.out.println();
    System.out.println(om.M(10));

 1  
/ \

 1  3  
/ \/ \

 1  3  5  
/ \/ \/ \

 1  3  5  7  9  
/ \/ \/ \/ \/ \
Pete Arden
źródło
Ahhhh, pobiłeś mnie do tego :) Chciałem również opublikować odpowiedź Java. tak czy inaczej, oto kilka sugestii, aby zagrać w golfa trochę więcej: nie musisz inicjować iw pierwszej pętli for, może to wyglądać tak for(; i < n; i++). Dzięki tej zmianie możesz pograć w golfa jeszcze bardziej: o += i + " ";zmiany o += i++ + " ";w pętli for i stają się for(; i < n; ). To jest, jeśli chcesz zachować instrukcję if. Mógłbyś zmienić swój przyrost i na i += 2 i usunąć całą instrukcję if, ale w takim przypadku moja druga propozycja nie ma zastosowania :) (ps:
nigdy
@peech Jeśli jest to jakaś pociecha, zwykle jest to wyścig dla mnie, aby uzyskać pierwszą odpowiedź w języku C #. Jeśli to zniknie, szukam odpowiedzi w Javie :) Dziękuję za wskazówki. Usunąłem iinicjalizację z forpętli, ale inne rzeczy utknęły w pętli. Być może będę musiał się z tym trochę pobawić :)
Pete Arden
Tak się cieszę, że w poprzednim komentarzu powiedziałem „nie testowałem tego” ... oczywiście to nie działa o += i++ + " ";:). Btw, masz mały błąd w kodzie :) od Java używa floor()sprawie podziału Integer (4/3 = 1), należy zrobić to tak: int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }. jeśli zwiększasz o i += 2, nie potrzebujesz tego, jeśli instrukcja sprawdza parzystość. Oszczędza również kolejne 3 bajty :) spróbuj tutaj: ideone.com/ekaUUH
peech
@peech Jeśli ktoś jest na tyle pewny siebie, aby poprawić mój kod, zakładam, że musi być poprawny, więc kiedy to nie działa, próbuję raz za razem, myśląc „to musi być ja ...” :) Nie martw się! Dzięki za wskazówki - floorkilka dni temu odkryłem dziwactwo dywizji, grając z jakąś Javą :)
Pete Arden
3

C # 6, 95 bajtów

n=>{var o="";int i=1;for(;i<=n;i+=2)o+=$" {i} ";o+='\n';for(i=1;i<=n;i+=2)o+="/ \\";return o;};

Pełna lambda:

Func<int, string> a = n=>
{
    var o="";int i=1;
    for(;i<=n;i+=2)
        o+=$" {i} ";
    o+='\n';
    for(i=1;i<=n;i+=2)
        o+="/ \\";
    return o;
};
Jodła
źródło
3

CJam, 26 23 bajtów

Sri,:)2%_S2**N@,"/ \\"*

Sprawdź to!

-3 dzięki 8478 (Martin Ender)

Erik the Outgolfer
źródło
Możesz zaoszczędzić 3 bajty, unikając niektórych manipulacji na stosie:Sri,:)2%_S2**N@,"/ \\"*
Martin Ender,
@MartinEnder Och, dlatego nie mogłem tego usunąć +. I przysięgam, naprawdę wykorzystałem ed! ... krótszy niż Pyth.
Erik the Outgolfer
3

Game Maker Language (GM 8.0), 97 bajtów

m=ceil(argument0/2)e=""for(i=1;i<2*m;i+=2)e+=" "+string(i)+" "return e+"#"+string_repeat("/ \",m)

Biorąc pod uwagę, że dane wejściowe wynoszą co najwyżej 10, chr(48+i)będą działać zamiast string(i), chociaż liczba bajtów jest taka sama.

Czytelny:

m = ceil(argument0/2)
e = ""
for (i = 1; i < 2*m; i += 2 )
  e += " " + string(i) + " "
return e + "#" + string_repeat("/ \", m)
u54112
źródło
3

Pyth, 24 22 bajtów

K-SQyMS5+dj*2dK*lK"/ \

Dzięki 42545 (ETHprodukcje) za -1 bajt

Tłumacz online

11 przypadków testowych

Erik the Outgolfer
źródło
Zapisz ofertę dzięki*lK"/ \\
ETHproductions
@ETHproductions Możesz użyć \zamiast \\:)
Erik the Outgolfer
3

> <> (Ryby) 52 63 62 bajtów

<v!?:-1:!?-1%2:
 >~la}}" "72.
v!?-2lno<o"  "
o
>:?!;"\ /"ooo1-

Wypróbuj online!

Aby użyć po prostu miejsce n na stosie i gotowe!

Wiele z tego pochodzi z odpowiedzi @ Teal-Pelican :).

Edycja: Dane wyjściowe nie są właściwie wyrównane w>> <> przesyłaniu! Ustalenie...

Edycja2: Musiałem poświęcić niektóre bajty, ale dane wyjściowe są teraz poprawne.

Edycja3: Nigdy więcej zabawy z \ /lustrami i oszczędzam 1 bajt.

Wynik:

 1  3  5  7  9
/ \/ \/ \/ \/ \
redstarcoder
źródło
Dzięki za wykrycie błędu w druku, edytuję teraz odpowiedź (dość trywialna dla mojej). Ciekawe jest, że odpowiedź podstawowa jest taka sama, ale zapisuje się wiele bajtów.
Teal pelikan
Nie ma problemu, z przyjemnością zobaczyłem zgłoszenie> <>! Ciekawie będzie zobaczyć, który z nich jest teraz mniejszy, ponieważ zmiany te bolą mnie bardzo źle haha.
redstarcoder
Wygląda na to, że jestem o 5 bajtów mniejszy: p.
redstarcoder
Jeszcze raz spojrzę na moje, aby zobaczyć, czy mogę wycisnąć kilka bajtów z aha.
Teal pelikan
1
Wróciłem do domu i wpadłem na pomysł, jak to zrobić. Moja nowa odpowiedź to 55 bajtów! : D - Dzięki, że kazałeś mi nad tym popracować, było fajnie.
Teal pelikan
2

C, 100 79 77 bajtów

#define P(s)for(i=0;i++<n;printf(s,i++));puts("");
i;f(n){P(" %d ")P("/ \\")}
Karl Napf
źródło
2

R, 70 69 68 58 bajtów

cat(paste("",z<-seq(,scan(),2)),"\n");for(i in z)cat("/ \\")

3:
#>  1  3 
#> / \/ \

10:
#>  1  3  5  7  9 
#> / \/ \/ \/ \/ \
Jonathan Carroll
źródło
2

Grzmotnąć, 64, 59, 57, 51, 49, 48, 45 bajtów

EDYTOWAĆ:

  • minus 3 bajty (użyj 1 $ zamiast STDIN)
  • jeszcze jeden bajt, zastępując -s ""go-s\
  • minus 2 bajty zastępując printf z -f nast (dzięki!) @Adam
  • refaktoryzowane do skryptu zamiast funkcji (aby pokonać > <> )
  • usunięto zbędne przestrzenie
  • trochę zoptymalizowałem ekspres sed

Grał w golfa

Fragment (45 bajtów):

seq -f" %g " -s\  1 2 $1|sed 'p;s| . |/ \\|g'

Funkcja (wersja oryginalna) (57 bajtów):

M() { printf " %s %.0s" `seq 1 $1`|sed 'p;s| . |/ \\|g';}

Test

--- mountains.sh ----
#!/bin/bash
seq -f" %g " -s\  1 2 $1|sed 'p;s| . |/ \\|g'

>./mountains.sh 10
 1  3  5  7  9 
/ \/ \/ \/ \/ \

>M 10
 1  3  5  7  9 
/ \/ \/ \/ \/ \
zepelin
źródło
2
To sedjest genialne. Nie używając funkcji ani printf, oszczędzasz 10 bajtów:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
Adam
To miła rada! Dziękuję Ci ! Nadal używam catdo odczytu danych wejściowych ze STDIN, ponieważ IMO nie jest uczciwe, aby używać wstępnie zdefiniowanej zmiennej do przekazywania danych.
zeppelin
1
$1to tylko pierwszy parametr przesłany do programu. Nie sądzę, że to oszustwo, zobacz meta.codegolf.stackexchange.com/questions/2447/…
Adam
Tak, masz rację. Dzięki jeszcze raz !
zeppelin
2

Befunge 93 , 64 bajty

Wypróbuj online!

 &61p1   v+2,,,"/ \"
_v#!`" ":<+2.," ":
 <^p00p10"|<"
@ >91+,$1v
Łagodnie Milquetoast
źródło
2

Rubinowy 82 60 bajtów

Szybkie i brudne rozwiązanie Ruby można zdecydowanie lepiej zoptymalizować, gdybym był lepszy z Ruby

puts "",1.step($*[0].to_i,2).map{|x|$><<" #{x} ";"/ \\"}*""

Zastosowanie: prog.rb 10
Wyjście:

 1  3  5  7  9
/ \/ \/ \/ \/ \

edycja: liczne zmiany i optymalizacje autorstwa @Manatwork!

Ben Hili
źródło
print$><<i użyj interpolacji ciągów " #{x} ". Ale najlepiej byłoby, aby zmniejszyć liczbę .eachprzez wyprowadzenie 1. linia bezpośrednio z zwrotnego i budowania 2 linia w zmiennej: s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s. Lub nawet puts"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*"".
manatwork
Numeric#stepakceptuje 2 parametry, więc można uniknąć składni długiego zakresu, która wymaga nawiasów wokół: (1..$*[0].to_i).step(2)1.step($*[0].to_i,2).
manatwork
@manatwork naprawdę dobre sugestie! Widzę, jak korzystam z wielu twoich rad w moich przyszłych postach z codegolf, więc bardzo doceniam wkład.
Ben Hili
1

JavaScript (ES6), 66 64 bajtów

n=>(f=n=>n?f(n-1)+(n%2?n+s:s):s=" ")(n)+`
`+"/ \\".repeat(++n/2)

Rekurencyjnie buduje pierwszą linię, a następnie dołącza drugą. Pierwszy wiersz jest zbudowany z obserwacji, że jest to po prostu zakres [0 ... n], przy czym każdy element n przekształca się w spację, jeśli jest parzysta, lub n łączy się ze spacją, jeśli jest nieparzysta.

ETHprodukcje
źródło
1

Python 2, 60 bajtów

Zaoszczędź 6 bajtów dzięki @Kade!

lambda s:" "+"  ".join(`range(s+1)`[4::6])+"\n"+-~s/2*"/ \\"
Oliver Ni
źródło
Nie musisz używać list()gipsu, usunięcie go spowoduje przejście do 60 :)
Kade
@Kade Backticks `` `sprawiają, że jest to ciąg znaków. Nie mogę tego zrobić, lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"ebo wtedy dałby listę ints i umiera
Oliver Ni
@Kade Huh. Nie działa online ... Nieważne, nie wiem, dlaczego myślałem, że to nie działa ...
Oliver Ni
1

Partia, 107 bajtów

@set s=
@set t=
@for /l %%i in (1,2,%1)do @call set s=%%s%%  %%i&call set t=%%t%%/ \
@echo%s%
@echo %t%
Neil
źródło
1

Scala, 99 95 bajtów

(? :Int)=>for(i<-0 to 1)println(1 to ?filter(c=>c%2>0)map(c=>if(i<1)s" $c "else"/ \\")mkString)

Nie golfił

(? :Int) => 
    for (i<-0 to 1)
        println(
            1 to ?filter(c=>c%2>0)
                  map(c=>if(i<1)s" $c "else"/ \\")
                  mkString
        )
Mydlany
źródło
1

Rubinowy, 48 bajtów

->x{" 1  3  5  7  9 "[0..3*x-=x/2]+?\n+"/ \\"*x}
GB
źródło
1

Oktawa, 45 bajtów

f=@(n)reshape(sprintf(' /%d \',1:2:n),2,[]);

Test:
f (8)

 1  3  5  7
/ \/ \/ \/ \
rahnema1
źródło
Gdy input = 0, pozostaje a / left :)
Sygmei
Nie powiedziałem, że twoja odpowiedź jest nieprawidłowa! Właśnie zauważyłem tę małą zabawną usterkę :)
Sygmei
Nie mogę założyć n == 0 :(
rahnema1
1

QBIC , 35 bajtów

:[1,a,2|X=X+!b$+@ | Y=Y+@/ \|]?X ?Y

Wyjaśnienie:

:           gets a CMD line param as INT 'a'
[1,a,2|     FOR b = 1 to a STEP 2
X=X+!b$+@ | Add to X$ the counter of our FOR loop and a trailing space
            Leading space is provided by the cast-to-string function.
Y=Y+@/ \|   Add to Y$ the mountain.
]           Close the first possible language construct (IF, DO or FOR). In this case: NEXT
?X ?Y       Print X$, Print Y$. The space adds a newline in the resulting QBASIC.
Steenbergh
źródło
0

Kitanai , 140 bajtów

$0[0]$1[int(input":")]$2[""]$3[""]$0#?(mod@2)($2[add(add(@" ")(string($0@)))"  "]
$3[add@"/ \"])?(neq@($1@))([add@1]&1)print($2@)print($3@)%
Sygmei
źródło
0

Perl, 46 + 2 ( -plflaga) = 48 bajtów

@_=map$_%2?$_:"",0..$_;$_="@_$/"."/ \\"x(@_/2)

Za pomocą:

perl -ple '@_=map$_%2?$_:"",0..$_;$_="@_$/"."/ \\"x(@_/2)' <<< 7    

Lub 52 bajty:

@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/

Za pomocą:

perl -e '@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/' 7
Denis Ibaev
źródło