Moja żona jest bardzo, powiedzmy, szczególnie, jeśli chodzi o nakładanie ozdób na naszą choinkę. Dajmy jej kod, który pomoże jej w tym trudnym czasie.
Wkład
Biorąc pod uwagę 2 < n < 10
wysokość drzewa i 0 < k < n
wyraźną liczbę ozdób.
Zadanie
Udekoruj drzewo, zaczynając od 1
i zwiększając k
, owijając ozdoby wokół drzewa. Jeśli dotrzemy k
i będziemy mieć więcej gałęzi do dekoracji, zacznij od nowa 1
.
Nie ma problemu, jeśli na drzewie nie ma takiej samej liczby ozdób, o ile wzór jest spełniony.
Ozdoby powinny pojawiać się nad każdą gałęzią, ^
z wyjątkiem górnego rzędu.
Drzewo ma strukturę zaczynającą się od jednej gałęzi, następnie następny poziom ma + 1 gałęzie ze spacją między nimi, przesuniętą od góry jak:
^
^ ^
W trzecim rzędzie dodajesz jeszcze jedną gałąź i ustawiasz je ponownie tak, aby żadna gałąź nie była w tej samej kolumnie (jeśli myślisz o niej jak o siatce).
^
^ ^
^ ^ ^
Wydajność
Wyjmij ozdobione drzewo.
Przykłady
1.
n = 3, k = 2
^ //Height is 3
^ ^
^ ^ ^
Teraz dekorujemy każdą gałąź zaczynając od 1 i zwiększając do k:
^
1 2
^ ^
1 2 1
^ ^ ^
2)
n = 6, k = 5
^ //Non-Decorated
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^ ^ ^ ^ ^ ^
^ //Decorated
1 2
^ ^
3 4 5
^ ^ ^
1 2 3 4
^ ^ ^ ^
5 1 2 3 4
^ ^ ^ ^ ^
5 1 2 3 4 5
^ ^ ^ ^ ^ ^
3)
n = 5, k = 1
^
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^
1 1
^ ^
1 1 1
^ ^ ^
1 1 1 1
^ ^ ^ ^
1 1 1 1 1
^ ^ ^ ^ ^
To jest golf golfowy, więc wygrywa najkrótszy kod! Baw się dobrze i powodzenia!
Odpowiedzi:
C #
226221 bajtówZaoszczędź 5 bajtów dzięki @Mukul Kumar i @aloisdg
Gra w golfa:
Nie golfowany:
Testowanie:
Edycja: Miałem casting
int
doConsoleColor
... Tegorocznego sezonu :)MerryChristmas.gif
źródło
i=1
deklarację int i usunąć ją ze swojejfor
pętli ...C#
odpowiedź, która zyskuje trochę miłości.05AB1E ,
292724 bajtyZaoszczędzono trzy bajty dzięki Adnan!
Wypróbuj online!
źródło
NN>*;
przezNLO
.N*(N+1)/2
celowo użyłem sumy kolejnych liczb całkowitych, zaczynając od 1, ale zupełnie zapomniałem, że 05AB1E ma do tego wbudowane. Dzięki!ï
teraz tej części: p?JavaScript (ES6), 97 bajtów
Wygląda na to, że twoja żona naprawdę jest maniakalna, więc nie obejmuje to żadnej wiodącej lub końcowej nowej linii ani żadnej wiodącej lub końcowej przestrzeni. :-)
Próbny
Pokaż fragment kodu
źródło
C ++ 214–13–3–1–1–10 = 186 bajtów
grał w golfa
Dzięki @ cyoce za uratowanie 1 bajtu.
Dzięki @ Conor do krojenia w dół do 186!
Ungolfed + kopiuj i kompiluj
źródło
#define s(a)
?#define s std::cout<<
i wprowadzając odpowiednie zmiany.Python 2, 133 bajty
źródło
Clojure, 223 bajty
Moja pierwsza gra w golfa z Clojure:
Po wywołaniu jak
(println (str "\n" (d 6 5)))
nowa linia sprawia, że jest przyjemniej na REPL:Bez golfa:
Miałem pewne problemy z leniwymi sekwencjami i zagnieżdżonymi listami, ale byłem w stanie zapisać niektóre znaki, nie powtarzając
repeat
;) i używając\^
znaków zamiast"^"
ciągów znaków. Mogłem też pominąć zaskakująco wiele miejsc.źródło
Ruby 107 bajtów
Tak się nazywa
Wydajność:
źródło
C, 170 bajtów
Zadzwoń z:
Jako bonus, oto 4-bitowa wersja binarna:
źródło