Ваше задание - написать программу четной длины , которая печатает квадрат ASCII-искусства (описанный ниже), который увеличивает длину своей стороны на 1 единицу каждый раз, когда исходный исходный код вставляется в середину текущего кода.
Мне очень трудно определить эту задачу очень хорошо, поэтому я приведу вам пример:
Допустим, ваш исходный код был
CODE
и что он напечатан:0
Затем вставьте
CODE
посередине: ваш код становитсяCOCODEDE
и он должен напечатать:00 00
Вставьте
CODE
посередине: ваш код становитсяCOCOCODEDEDE
и должен напечатать:000 000 000
И так далее. Ваш ответ теоретически должен работать после любого количества итераций, но я понимаю, что из-за ограничений производительности языка он не может работать разумно выше определенного порога.
Некоторые правила:
Вы можете использовать любой печатный ASCII (32-127) в качестве символа для вашего квадрата. Ваш выбор должен быть постоянным (вы должны использовать один и тот же символ для каждой итерации).
Квадрат начального вывода должен иметь длину стороны 1 .
Квадрат ascii-art определяется как строка с N строками (разделенными N-1 переводами строк / символами новой строки), и каждая строка содержит N копий выбранного символа.
Ваш вывод не может содержать никаких посторонних пробелов, кроме завершающей строки.
Вы можете использовать значения по умолчанию для ввода и вывода (программы или функции разрешены, но фрагменты не разрешены).
Середина вашего кода определяется как точка , где исходный код может быть разделен на две части таким образом, что они равны.
Ваши ответы будут оцениваться по длине вашей исходной программы в байтах. Побеждает самое низкое число байтов. В случае ничьей ответ, представленный ранее, выигрывает.
Вы можете использовать эту программу, чтобы применить вставки без необходимости делать это вручную.