Посмотрите на следующую строку. Заметили шаблон?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL ЦУМ BAZYXWV N Е.О. DP CQ BAZYXWVUTSR
Как некоторые могли заметить, это в основном спираль алфавита, где расстояния между строками / столбцами постепенно увеличиваются на 1 пробел / перевод строки.
Строгое определение
- Давайте иметь счетчик с , который изначально равен 0.
- Выпишем первые с + 1 буквы алфавита слева направо:
A
. Затем сверху вниз на следующий (с + 1) (с + 2) / 2 буквы (добавить
B
):AB
.Слева направо, следующее (с + 1) (с + 2) / 2 (добавить
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 ABEF DC G MH LKJI -------- 3 ABEFNOP DC GQ MHR LKJI S DT CU BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL ЦУМ BAZYXWV N Е.О. DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ DPR ОКК BAZYXWVUTSR T ру QV PW OX 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 ИЛИ NMLKJIHGFEDCBAZYXWVUTS