Создайте функцию, которая с учетом количества строк n
, делает bigA
.
- Горизонтальная полоса
bigA
должна быть в среднем ряду, или нижняя из двух, еслиn
четная - Предположим, моноширинный шрифт для вывода
Выходные данные должны быть строкой (или аналогичной, например, массив символов) с четкими переносами строк, чтобы разбить строки, и с правильными пробелами для заполнения слева (вы можете считать \ t равным 4 пробелам). Там может быть любой пробел справа.
Примеры
n = 1
A
п = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
п = 5
A
A A
AAAAA
A A
A A
Это вдохновлено созданием буквы "H" из меньших букв "H".
Ответы:
05AB1E , 13 байтов
Код:
Использует кодировку 05AB1E . Попробуйте онлайн!
Объяснение:
холст
Я, вероятно, должен документировать холст немного больше (и много других функций), но это в основном подводит итог. Холст имеет разные «режимы» в зависимости от заданных типов параметров. Команда canvas имеет три параметра: <длина> <строка> <направление> .
Так как параметры длины и направления являются списками, эти списки «сжаты» для создания набора инструкций, которые должны быть выполнены. Строковый параметр - это просто буква A , поэтому это символ заполнения, используемый всеми инструкциями. Холст интерпретирует это как следующий набор инструкций (для ввода 7):
Направления переводятся следующим образом:
Если ничего не было выведено, 05AB1E автоматически выводит результат холста.
источник
Древесный уголь ,
1715 байтПопробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Вход
n
.Распечатать горизонтальную полосу большого
A
. (Для четных чиселn+1
th в любом случае перекрывает правую сторону.)Перейти на вершину большого
A
.Печать с обеих сторон большая
A
.источник
Python 2 , 80 байт
Попробуйте онлайн!
Разделите желаемый результат на левый пробел, левый
A
плюс средний пробел илиA
s и правыйA
. Вычислите среднюю часть, используя нарезку на фиксированной строке. Это позволяет использовать тот же способ для генерации первой строки.источник
Stax , 15 байт
Запустите и отладьте его
Распакованная, разархивированная и прокомментированная, программа выглядит следующим образом.
Запустите этот
источник
JavaScript (ES6), 77 байт
Этот исходный код имеет форму прямоугольника ! Ой, подождите ... неправильный вызов: - /
Попробуйте онлайн!
источник
Python 3,6 , 79 байтов или 73 байта
Использование f-строк для выравнивания горизонтальных частей буквы:
С
\b
используется для удаления одногоA
(возможно мошенничество):источник
Java (JDK 10) , 124 байта
Попробуйте онлайн!
источник
J 65 байт
Попробуйте онлайн!
Может быть уменьшено прибл. 12 байт, просто сделав глагол молчаливый, но у меня проблемы с этим.
Объяснение:
3 : '...'
обозначает явный однострочный глаголy
это аргумент=/~@i.
создает единичную матрицу с размером аргумента([:(}:@|."1,.])
добавляет к единичной матрице свою зеркальную копию с последними пропущенными элементами каждой строки.1(...)}(...)
изменяет на 1 позиции в правом аргументе, выбранном левым([:(<@;]+i.@+:)<.@-:)
- готовит выбор, выполнив следующие действия:' A'{~
визуализирует пробел в местах 0 и 'A', где есть 1источник
Холст ,
1713 байтовПопробуй это здесь!
-4 байта благодаря дзайме !
источник
Рубин , 66 байт
Попробуйте онлайн!
Возвращает как массив строк
источник
SOGL V0.12 , 12 байт
Попробуй здесь!
Объяснение:
источник
Japt
-R
,2019 байтовПопытайся
объяснение
альтернатива
(В надежде, что это поможет мне найти некоторые сбережения!)
источник
ç h'AUz)¬íp ®i'A êÃû
p
на,²
и это также 19 байтов.Рубин , 73 байта
Попробуйте онлайн!
источник
Желе ,
23201918 байтПопробуйте онлайн!
=þ`
создает единичную матрицу размераn
.L‘HĊƲ
находит индекс строки горизонтальной панели с¦
выбором этой строки и применениемo\
к ней, которая создает панель.U
переворачивает каждый ряд, чтобы у нас не было перевернутой буквы «А» иŒB
(palindromize; vectorize) составляет вторую половину «А».ị⁾A
(с пробелом, который обрезается при форматировании) заменяет0
s пробелами, а1
s -A
s.источник
T-SQL ,
182177 байтПервая версия (с 182 байтами):
Версия выше работает до @ n = 9.
Вот еще одна версия, которая работает до @ n = 23, но имеет 2 дополнительных байта:
Ungolfed:
источник
Хаскелл ,
989795 байтов и 109 байтовДва очень разных подхода. Первый (95 байт):
и второй (109 байт):
Попробуйте их здесь!;Попробуйте модифицированную версию здесь!Попробуйте третью версию здесь!
источник
l
как инфиксный оператор .m True='A'
быть сокращен доm b|b='A'
.Python 2 , 70 байт или 65 байт
Список строк является приемлемым результатом, как @Budd указано в комментариях.
Попробуйте онлайн!
Казалось бы, хитрое решение, используя
\b
. В TIO это выглядит странно, в консоли это делает свою работу.Попробуйте онлайн!
источник
Javascript, 124 байта
Довольно наивное решение, дало ему шанс попрактиковаться в навыках JS.
for(i=-1,p=" ".repeat(n-1)+"A ";++i<n;console.log(i-~~(n/2)?p:p.slice(0,i)+"A".repeat(n)),p=p.slice(1,n)+" "+p.slice(n-1)){}
распакованный
источник
Perl 5
-n
, 57 байтПопробуйте онлайн!
источник
Python 3 ,
93, 88 байтПопробуйте онлайн!
-3 от @ovs используя f-строку
источник