Подивіться на наступний рядок. Помітили шаблон?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR
Як деякі могли помітити, це в основному спіраль алфавіту, де відстані між рядками / стовпцями поступово збільшуються на 1 пробіл / новий рядок.
Суворе визначення
- Нехай лічильник c , який спочатку дорівнює 0.
- Випишемо перші з + 1 літери алфавіту зліва направо:
A
. Потім зверху вниз на наступний (з + 1) (з + 2) / 2 букви (додати
B
):AB
.Зліва направо, наступний (c + 1) (c + 2) / 2 (add
C
):AB C
І знизу вгору наступні літери c + 1 (додати
D
):AB DC
Досягнув кінця циклу. Отже, приріст c (який стає 1). Потім він починається з першого кроку, різниця полягає лише в тому, що замість того, щоб використовувати перші букви c + 1 алфавіту, ми використовуємо наступні букви c + 1 , починаючи з останнього елемента цього циклу (
D
у цьому випадку тому ми продовжуємоEFG...
). КолиZ
це досягнуто, він повертається назад звідтиA
.
Завдання
Враховуючи ціле число N (яке є позитивним для 1-індексації або негативним для 0-індексації), виведіть перші N циклів спіралі.
Правила
Ви можете використовувати малі або великі літери, але ваш вибір повинен бути узгодженим (використовувати тільки один з них, змішування заборонено).
Ви можете приймати введення та надавати вихід будь-яким із стандартних методів на будь- якій мові програмування , зазначаючи, що ці лазівки за замовчуванням заборонені.
Прийнятні вихідні формати: багаторядковий рядок, список рядків, що представляють рядки, список, що містить кілька списків символів, кожен з яких представляє один рядок, або будь-що інше, що вам здається підходящим. Якщо ви не виберете перший формат, було б добре включити симпатичну версію коду.
Це код-гольф , тому виграє найкоротший код у байтах (кожною мовою), який відповідає вимогам!
Тестові справи
Ціле число введення буде відокремлено відповідним результатом через новий рядок, а тести будуть розділені за допомогою тире. Зауважте, що це 1-індексація.
1 AB Постійного струму -------- 2 АБЕФ DC G MH LKJI -------- 3 АБЕФНОП DC GQ MHR LKJI S DT МС BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ ДНР CQS BAZYXWVUTSR T RU QV PW OX NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY MHRJLZ LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE ДНРФ CQSG BAZYXWVUTSR TH RUI QVJ PWK OXL NMLKJIHGFEDCBAZY M СН RO QP PQ АБО NMLKJIHGFEDCBAZYXWVUTS