Zainspirowany przez Wyświetl łańcuch małych gór z nieparzystą liczbą na szczycie! autor: @sygmei .
Po co mieć łańcuch gór, skoro można mieć jeden masywny?
Stwórz program, który pobiera numer wejściowy i drukuje górę z każdą liczbą nieparzystą aż do liczby wejściowej.
(Gdzie „południowy zachód” oznacza directly below and to the left
, a „południowy wschód” directly below and to the right
)
Każda liczba będzie miała /
południowy zachód od niej i \
południowy wschód. Zaczyna się od 1
góry, a następny numer pójdzie na południowy zachód od /
lub na południowy wschód od \
. Kolejny numer znajdzie się w linii najbliżej górnej i lewej możliwie najbardziej.
W przypadku numeru wielocyfrowego tylko pierwsza cyfra musi znajdować się we właściwym miejscu, a pozostałe cyfry bezpośrednio po niej, a tylko pierwsza cyfra powinna mieć \
i /
wychodzić z niej.
Góra do 1 lub 2 to po prostu:
1
/ \
Góra do 3 lub 4 to po prostu:
1
/ \
3
/ \
Dla 25 lub 26:
1
/ \
3 5
/ \ / \
7 9 11
/ \ / \ / \
13 15 17 19
/ \ / \ / \ / \
21 23 25
/ \ / \ / \
Dwa ostatnie wiersze, w których wartość wejściowa to 121
111 113 115 117 119 121
/ \ / \ / \ / \ / \ / \
I ostatnie dwa wiersze, w których dane wejściowe to 1019:
993 995 997 999 1001100310051007100910111013101510171019
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
Możesz założyć, że dane wejściowe będą większe niż 0 i mniejsze niż 10001 (wyłącznie).
Końcowe spacje są w porządku, a dodatkowe spacje wiodące są w porządku, o ile jest taka sama na wszystkich liniach.
To jest golf golfowy , więc wygrywa najkrótszy program w bajtach.
Nieokreśloną odpowiedź można znaleźć online tutaj (w Pythonie na repl.it), jeśli potrzebujesz więcej przypadków testowych.
Odpowiedzi:
05AB1E ,
54524746 bajtówWypróbuj online!
Wyjaśnienie
Mógłbym zaoszczędzić 5 bajtów,
ÅɹL£D€g__ÏRv"/ \ "yg×N·©úˆy4jJðÛ®>úˆ}¯R»
gdybym tylko wcisnął tę poprawkę dla j, którą napisałem kilka tygodni temu : /źródło
Partia, 335 bajtów
źródło
cmd /Q /C file.bat
liczy 3 dodatkowe bajty, ale wciąż jest lepszy niż@echo off
. Powinieneś opublikować to w pytaniu dotyczącym wskazówek dotyczących partii.Python 2,
160149143 bajtówDzięki TFeld za zapisanie 11 bajtów i Artyer za zapisanie 6 bajtów
źródło
i=len(y)
ifor l in y:print' '*i+l;i-=1
zamiastfor i,l in enumerate(y):print(len(y)-i-1)*' '+l
-10 bajtów\\
, aby\
gdyż jest przed przestrzeńwhile y:print' '*-~len(y)+y.pop(0)
. Oszczędza 3 bajty.%-4d
usprawiedliwić przez 4.Perl, 134
133 bajty + 1 dla
-p
opcjiWersja sformatowana (oryginalna wersja gry w golfa używa prawdziwych „nowych linii” zamiast \ n)
źródło
Bash, 425 bajtów
Sformatowany:
źródło