Spójrz na następujący ciąg. Zauważ wzór?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL SMAR BAZYXWV N EO DP CQ BAZYXWVUTSR
Jak niektórzy mogli zauważyć, jest to w zasadzie spirala alfabetu, w której odległości między rzędami / kolumnami stopniowo rosną o 1 spację / nowy wiersz.
Rygorystyczna definicja
- Załóżmy licznik c , który początkowo wynosi 0.
- Piszemy się pierwszy c + 1 litery alfabetu od lewej do prawej:
A
. Następnie, od góry do dołu, kolejny (C + 1) (c + 2) / 2 liter (ADD
B
):AB
.Od lewej do prawej następna (c + 1) (c + 2) / 2 (dodaj
C
):AB C
I od dołu do góry, kolejne c + 1 litery (dodaj
D
):AB DC
Dotarłem do końca cyklu. Dlatego zwiększmy c (który staje się 1). Następnie zaczyna się od pierwszego kroku, jedyną różnicą jest to, że zamiast używać pierwszych c + 1 liter alfabetu, używamy kolejnych c + 1 liter, zaczynając od ostatniego elementu tego cyklu (
D
w tym przypadku więc kontynuujemyEFG...
). PoZ
osiągnięciu cykl wraca zA
.
Zadanie
Biorąc pod uwagę liczbę całkowitą N (która jest dodatnia dla indeksowania 1 lub nieujemna dla indeksowania 0), wyprowadzaj pierwsze N cykli spirali.
Zasady
Możesz użyć małych lub wielkich liter, ale twój wybór musi być spójny (użyj tylko jednego z nich, mieszanie nie jest dozwolone).
Możesz pobierać dane wejściowe i generować dane wyjściowe za pomocą dowolnej standardowej metody w dowolnym języku programowania , zwracając uwagę, że te luki są domyślnie zabronione.
Dopuszczalne formaty wyjściowe: łańcuch wielowierszowy, lista ciągów reprezentujących linie, lista zawierająca wiele list znaków, każdy reprezentujący jedną linię, lub cokolwiek innego, co uważasz za odpowiednie. Jeśli nie wybierzesz pierwszego formatu, dobrze byłoby dołączyć ładną wersję swojego kodu.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach (w każdym języku), który spełnia wymagania!
Przypadki testowe
Wejściowa liczba całkowita zostanie oddzielona odpowiadającym jej wyjściem przez nowy wiersz, a testy zostaną rozdzielone za pomocą myślników. Pamiętaj, że są one indeksowane 1.
1 AB DC -------- 2) ABEF DC G MH LKJI -------- 3) ABEFNOP DC GQ MHR LKJI S. DT CU BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL SMAR BAZYXWV N EO DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ DPR CQS BAZYXWVUTSR T RU QV PW WÓŁ NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY MHRJLZ LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE DPRF CQSG BAZYXWVUTSR TH RUI QVJ PWK OXL NMLKJIHGFEDCBAZY M SN RO QP PQ LUB NMLKJIHGFEDCBAZYXWVUTS