Napisz program lub funkcję, która rysuje drzewo, tworząc las.
Drzewa są rysowane jak układanie piramidy. Pierwszy (górny) rząd zawiera 1
drzewo, następny rząd w dół zawiera 2
(w sumie 3
), następny zawiera 3
(w sumie 6
) i tak dalej. Jeśli nie ma wystarczającej liczby drzew, aby ukończyć pełny rząd, wypełnij go w lewo i pozostaw puste miejsca po prawej stronie. Ponadto drzewa niższego poziomu nieznacznie pokrywają się z drzewami wyższego poziomu ze względu na ich położenie.
To jest las wielkości 1
/\
//\\
///\\\
||
||
To jest las wielkości 2
/\
//\\
/\///\\\
//\\ ||
///\\\||
||
||
To jest las wielkości 3
/\
//\\
/\///\\\/\
//\\ || //\\
///\\\||///\\\
|| ||
|| ||
To jest las wielkości 4
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\||///\\\
//\\ || ||
///\\\|| ||
||
||
Jest to las wielkości 5
(zwróć uwagę, że piąte drzewo pokrywa pień pierwszego drzewa)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\
//\\ || //\\ ||
///\\\||///\\\||
|| ||
|| ||
(pomiń kilka)
To jest las wielkości 8
(przedłużający wzór)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\/\
//\\ || //\\ || //\\
/\///\\\/\///\\\||///\\\
//\\ || //\\ || ||
///\\\||///\\\|| ||
|| ||
|| ||
i tak dalej.
Wkład
Pojedyncza dodatnia w dowolnym, wygodnym formacie , n > 0
.
Wydajność
Reprezentacja lasu w stylu ASCII, zgodnie z powyższymi zasadami. Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że wszystkie drzewa są odpowiednio ustawione.
Zasady
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
n
, jakie są pozycje drzew?Odpowiedzi:
Haskell 310 bajtów
Zadzwoń
w 5
na przykład za pomocą.Oto nieskompresowany kod:
źródło
JavaScript (ES6),
357297276 bajtówEdycja: Zapisano 21 bajtów dzięki @KritixiLithos.
źródło
repeat
, możesz zmienićblah.repeat(val)
nablah[w="repeat"]
(val), a następnie możesz zmienić kolejne wystąpienia na,repeat
aby[w](val)
zamiast tego zapisać bajtyrepeat
jest wfor
pętli i nie będzie działaćn=1
, ale nadal byłem w stanie zaoszczędzić 21 bajtów.C ++ (w systemie Windows),
330312308304303 bajtówZadzwoń z:
źródło
C (w systemie Windows):
297295294 bajtówPodobne do mojej odpowiedzi w C ++, ale opublikowałem to, ponieważ jest nieco krótsze w C.
źródło
#import
to (przestarzałe) rozszerzenie GCC. Nadają się jednak do gry w golfa.<stdio.h>
i automatyczne zakładanie, że zmienna globalna ma byćint
lub funkcja do zwróceniaint
.JavaScript
418377 bajtówDzięki @Kritixi Lithos za pomoc w golfie przy 39 bajtach
Wypróbuj online
źródło
repeat
możesz zmienićblah.repeat(val)
na,blah[w="repeat"](val)
a następnie możesz zmienić kolejne wystąpieniarepeat
na just[w](val)
zamiast, aby zapisać bajty