(nie, nie te )
Wyzwanie
Otrzymasz dwa dane wejściowe. Pierwsza to dodatnia liczba całkowita n > 0
, która służy do wyprowadzenia n x n
prostokąta liczb 1, 2, 3, ... n
. Ten trójkąt zaczyna się w rogu i zwiększa się poziomo i pionowo o jeden, a po przekątnej o dwa. Wyjaśnienia znajdują się w poniższych przykładach. Zachowaj jedną spację między kolumnami i zachowaj wyrównanie wszystkich liczb w poszczególnych kolumnach. (W końcu to sztuka ascii ).
Drugie wejście,, x
jest jednym z czterech odrębnych wybranych znaków ASCII, które określają początkowy narożnik trójkąta (i stąd orientację). Na przykład możesz użyć 1,2,3,4
lub a,b,c,d
lub #,*,!,)
itd. Podaj w odpowiedzi, w jaki sposób działa orientacja.
Aby wyjaśnić to wyzwanie, użyję tego, 1,2,3,4
co będzie odpowiadać 1
lewy 2
górny, prawy górny itd. Zgodnie z ruchem wskazówek zegara.
Przykłady
Na przykład w przypadku n = 5
, x = 1
wyjście z następujących powodów:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Dla wejścia n = 11
, x = 1
wyjścia następujące (należy zwrócić uwagę na dodatkowe spacje więc pojedyncze cyfry są wyrównane do prawej):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
Z wejściem n=6
i x=2
wyjściem:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Z wejściem n = 3
i x = 4
wyjściem:
3
2 3
1 2 3
Z wejściem n = 1
i dowolnym x
wyjściem:
1
Zasady
- Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że liczby odpowiednio się wyrównają. (Na przykład dopuszczalne jest końcowe białe znaki, aby uzyskać kwadratowy wynik).
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Dane wyjściowe mogą być przesyłane do konsoli, zapisane jako obraz, zwrócone jako lista ciągów znaków itp. Dowolny wygodny i dozwolony format .
- 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).
Odpowiedzi:
Galaretka , 13 bajtów
Wypróbuj online!
Lewy argument:
n
Prawy argument:
x
(0
= lewy1
górny,2
= prawy górny, = lewy3
dolny , = prawy dolny)źródło
MATL , 18 bajtów
Pierwsze wejście to
n
. Drugim wejściemx
może być:0
: lewy górny1
: na dole po lewej2
: prawy dolny3
: w prawym górnym rogu(Lub może to być dowolna inna liczba całkowita, co jest interpretowane jako modulo 4).
Wypróbuj w MATL Online!
źródło
APL (Dyalog) , 29 bajtów
Wypróbuj online!
W jaki sposób?
¨⍳⍵
- dla każdegoi
w zakresien
(⍳+⍵-⊢)
- produkować wachlarz zi
dodatkiem wektoryzacjin - i
↑⌽
- odwrócić i spłaszczyć⌽∘⍉
- Obróć w prawo⍣⍺⊢
-x
razy' '@(=∘0)
- usuń zeraźródło
JavaScript
130128154142138135133 bajtów* naprawiono problemy z wypełnianiem
źródło
Python 2 ,
124120 bajtówWypróbuj online! lub Wypróbuj wszystkie przypadki testowe
(r+[n]+['']*i)[-n:]
doda kilka pustych ciągów znaków do listy liczb i pokroi na odpowiedni rozmiar, zazip
pomocą[::1-x%4/2*2]
i[::1-x/3*2]
wykona obrót, i%%%ds'%len(`n`)*n
wygeneruje ciąg do wyrzucenia (podobny' %3s %3s %3s'...
) do użycia na każdej liczbie + pusta lista ciągówźródło
Mathematica, 89 bajtów
oto kolejne rozwiązanie, które działa w TIO
Mathematica, 122 bajty
Wypróbuj online!
źródło
Węgiel drzewny , 39 bajtów
Wypróbuj online! Uwaga: końcowe miejsce. Link jest do pełnej wersji kodu. Druga wartość to liczba obrotów w lewo, więc 0 to górny lewy, 1 dolny lewy, 2 dolny prawy, 3 górny prawy. Wyjaśnienie:
źródło
JavaScript (ES6),
241222214 bajtówMniej golfa
Uwaga na temat orientacji.
Drugi parametr to znak z {„0”, „1”, „2”, „3”} i typ automatycznie konwertowany na liczbę przez
&
operatora. Jeśli ustawiony jest bit 0 (lsb) liczby, linie są odwracane w pionie. Jeśli ustawiony jest bit 1 (nlsb), kolumny są odwracane w poziomie. Inne znaki dziesiętne mogą być użyte z przewidywalnymi wynikami.Spacje końcowe
Puste wpisy w ciągu wyjściowym zostały zastąpione spacjami, co oznacza, że linie mają końcowe spacje w orientacjach „0” i „1”.
źródło
Lua, 250 bajtów
Przyjmuje parametry [w] idth i [m] ode przy użyciu 1,2,3,4 dla trybów opisanych w przykładzie.
źródło
05AB1E (61 bajtów)
Wypróbuj online
źródło