Напишите самую короткую возможную программу, которая принимает набор различных положительных целых чисел и выводит рендеринг ASCII концентрических шестиугольников с длинами сторон, состоящими из косых черт, подчеркиваний, пробелов и новых строк.
Самая короткая программа в байтах по подсчету https://mothereff.in/byte-counter выигрывает.
Примеры
(Они выглядят лучше с меньшим межстрочным интервалом.)
Если на вход 1
выводится шестигранник с длиной стороны 1:
__
/ \
\__/
Обратите внимание, что два подчеркивания используются для верхней и нижней части шестиугольника, поэтому он лучше пропорционален.
Как правило, шестигранник размера N содержит N косых черт с каждой угловой стороны и 2 * N подчеркивания сверху и снизу.
Если на входе 1 2
вывод, то должны быть концентрические шестиугольники с длиной сторон 1 и 2:
____
/ __ \
/ / \ \
\ \__/ /
\____/
Если на входе 1 3
вывод, должен быть:
______
/ \
/ __ \
/ / \ \
\ \__/ /
\ /
\______/
Если на входе 1 3 2
вывод, должен быть:
______
/ ____ \
/ / __ \ \
/ / / \ \ \
\ \ \__/ / /
\ \____/ /
\______/
и т.п.
Правила ввода / вывода
Входные данные должны поступать либо из командной строки, либо из stdin, но могут быть в любом удобном для вас формате.
Например, вы могли бы дать каждому номер в качестве аргумента командной строки: > myprogram 1 3 2
или вы могли бы подсказать пользователю ввести число в качестве преформатированного списка: [1, 3, 2]
.
Вывод должен идти в стандартный вывод или ближайший эквивалент вашего языка.
Дополнительные правила
- Входными данными всегда будет набор различных положительных целых чисел, необязательно в любом порядке .
- Выход должен ...
- не содержит никаких символов кроме
/\ _
и новых строк. - не должно быть пробелов или лишних пробелов.
- не содержит посторонних начальных переносов, но может иметь один дополнительный завершающий перенос.
- не содержит никаких символов кроме
- Если ничего не введено, то ничего не выводится (кроме, возможно, одной новой строки).
- Если это поможет, вы можете предположить, что входные целые числа меньше 2 16 .
1
(или любое число) относится к шестиугольнику с длиной стороны 1. (с оговоркой, что 1 косая черта = 2 подчеркивает.) Так 1
что всегда будет относиться к внутреннему шестиугольнику.
1
самому внутреннему или внешнему шестиугольнику?