Прямоугольники имеют это приятное свойство - прямоугольник состоит ровно из символов!
Еще более интересное свойство заключается в том, что прямоугольники можно правильно выровнять в таблице умножения - например, в таблице :
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
# ## ###
Ваша задача состоит в том, чтобы, учитывая число ( ), вывести отформатированную таблицу умножения .
правила
- Вы можете взять вход выше или ниже
- Применяются правила ввода / вывода по умолчанию
- Вы можете выбрать любой непробельный символ для представления блоков; любой другой символ (хотя символы новой строки являются специальными) считается пробелом. Выбранный символ может быть разным для разных входов, но должен быть одинаковым на протяжении всего ввода
- Результат может содержать ненужные символы, если таблица выровнена и нет выбранных символов, которые не являются частью требуемого вывода
- Разделители должны иметь ширину 1 символ / высоту, а прямоугольники должны быть упакованы (т.е. не должно быть разделителей между их символами)
- Пустые строки могут быть пустыми, заполнение не требуется
- Результат может быть строкой, матрицей, вектором строк, массивом символьных массивов или чем-то 2Dish
- В качестве альтернативы вы можете вывести матрицу / вектор-вектор / что-нибудь двумерное из чисел, но фон и передний план должны состоять из 2 различных чисел (которые могут варьировать входные данные для ввода, но не во всех выходных данных), и никакие другие числа не могут присутствовать. В этом формате также разрешены дополнительные окружающие символы (хотя они должны совпадать с номером фона)
- Это код-гольф , самый короткий ответ в байтах, за язык, выигрывает!
Примеры
Для ввода 2
допустимый вывод ascii-art с символом ∙
:
∙ ∙∙
Result: ∙ ∙∙.
∙ ∙∙
да, период просто для того, чтобы сбить вас с толку.
Другой действительный ответ в виде числовой матрицы, где 2 - номер фона, а 9 - передний план:
[[9,2,9,9,2,2],
[2,2,2,2,2,2],
[9,2,9,9,2,2],
[9,2,9,9,2,2]]
Пример неверного вывода будет
# # #
# # #
# # #
поскольку прямоугольники имеют разделители между ними.
Пример выходов для :
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
# ## ### ####
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 1 0 1 1 1 1
Ответы:
Haskell , 43 байта
Попробуйте онлайн!
Умный подход Эрджана Йохансена, выводящий с 0 и 1, генерирующий каждую
10...00
часть как строковое представление степени 10.Haskell , 49 байтов
Попробуйте онлайн!
Создает шаблон как
[1,0,1,0,0,1,0,0,0,...]
, затем создает 2D, беряmin
пары. Бесполезная странность экономит 2 байта по сравнению с более читабельным:Попробуйте онлайн!
источник
flip(map.max)=mapM max
.(->) b
Затем установите монаду вmapM :: (a -> b -> c) -> [a] -> b -> [c]
.flip(map.max)
наmapM max
R ,
5654433630 байтПопробуйте онлайн!
Принимает входное значение вышеN (поэтому возвращает матрицу 3x3 для n = 4 ). Возвращает матрицу из 1 с (на переднем плане) и 0 с (на заднем плане) с дополнительной строкой / столбцом нулей впереди.
Спасибо digEmAll за -7 байт.
источник
JavaScript (ES6),
73 7269 байтВозвращает строку из 1, пробелов и перевода строки.
Попробуйте онлайн!
JavaScript (ES7),
87 8382 байтаСохранено 3 байта благодаря @dzaima
Возвращает двоичную матрицу, которая строится ячейка за ячейкой.
Попробуйте онлайн!
Как?
Ширинавес матрицы определяется как:
(NB: Как разрешено правилами вызова, мы выводим матрицу шириныw + 1 )
Точно так же ячейка, расположенная в( X, Y) , пуста, если следующий квадратик допускает целочисленный корень для к = х или k = Y :
чей определитель:
источник
MATL,
1410 байтЭтот ответ использует
1
для блоков и0
для фонаПопробуйте это на MATL Online
объяснение
источник
Желе , 8 байт
Попробуйте онлайн!
источник
APL (Dyalog Unicode) ,
121012 байтов SBCSПопробуйте онлайн!
Редактировать: -2 байта от ngn. +2 байта, потому что предыдущие ответы были неверными (с идеей благодаря ngn и dzaima).
объяснение
Вывод должен выглядеть так:
источник
⎕
чтобы избежать{
}
Желе , 7 байт
Попробуйте онлайн!
объяснение
R
Ṭ
останавливается на самом большом элементе, указанном во входных данных, поэтому нам нужно нарисовать линию справа и снизу.) Пробелы между треугольными числами являются последовательными целыми числами, поэтому прямоугольные блоки, образованные промежутками между строками, заканчиваются как размеры, запрошенные вопросом; и использование операции ИЛИ (в данном случае, побитовой) позволяет линиям правильно пересекать друг друга.источник
05AB1E , 9 байтов
Код:
Использует кодирование 05AB1E . Попробуйте онлайн! или используйте печатную версию .
Объяснение:
источник
C # (интерактивный компилятор Visual C #) ,
9695 байт-1 байт благодаря варианту невежества
Попробуйте онлайн!
источник
n--
вnew string
раздел?Python 2 , 67 байт
Попробуйте онлайн!
Печатает пустые строки для пустых строк, что позволяет задача.
Та же длина (с одним входом выше
n
):Попробуйте онлайн!
источник
Wolfram Language (Mathematica) , 41 байт
Попробуйте онлайн!
источник
Древесный уголь , 18 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
источник
C # (.NET Core) ,
208155 байтовПопробуйте онлайн!
Очень пересмотренная версия благодаря различным полезным людям (см. Комментарии).
источник
PowerShell ,
4240 байт-2 байта благодаря масси .
Попробуйте онлайн!
источник
Java 11, 109 байт
Порт @ ASCII-only ответа C # .NET .
Попробуйте онлайн.
источник
repeat
метода.APL + WIN, 29 байт
Объяснение:
Пример:
источник
J , 17 байт
Попробуйте онлайн!
источник
I.
трюке!Мышь-2002 , 79 байт
Злоупотребление макросами мыши для повторения функций.
Попробуйте онлайн!
источник
Рубин , 55 байт
Попробуйте онлайн!
Как?
Сначала создайте первую строку, затем выполните итерации по ее символам. Вывести всю строку, если символ «#», в противном случае вывести один символ (который является пробелом)
источник
Brain-Flak , 170 байт
Попробуйте онлайн!
источник
Perl 6 ,
3533 байтаПопробуйте онлайн!
Anonymous Callable, который берет число и печатает таблицу умножения с
*
s с завершающим переводом строки.Объяснение:
источник
Haskell,
6968 байтВозвращает матрицу чисел.
Попробуйте онлайн!
Варианты
f
с одинаковым количеством байтов:источник
Stax , 7 байт
Запустите и отладьте его
Выбранный персонаж является backtick. (Как вы кодируете формат в уценке?)
Это означает,
a
иb
считаются посторонними пробелами.источник
MathGolf , 20 байтов
Попробуйте онлайн!
MathGolf действительно нужно получить больше функциональности для разделения списков и создания 2D списков.
объяснение
источник
Чернила ,
151152151 байтПопробуйте онлайн!
Хорошо, что правила допускают лишние символы.
Изменить: +1: фиксированный интервал. Кроме того, отображать с помощью @ (который не нуждается в экранировании) вместо # (который делает)
Редактировать: -1: Очевидно, это исправление также означало, что мне больше не нужен завершающий период для принудительного переноса новой строки на непустых строках. Ухоженная.
источник
C ++,
170156 байтБлагодаря дзайме
источник
SmileBASIC,
8377 байтГрафический вывод. Ввод
N-1
источник
Python 3 ,
8883 байта-5 байтов от Джо Кинга
Попробуйте онлайн!
источник
l
вне цикла. Попробуйте онлайн!Perl 6, 63 байта
источник
.join(' ')
ничего не делает,'#'
может быть\*
вместо этого, строки новой строки могут использовать буквальные переводы строк, обеl.map(str x*)
могут быть(str Xx l)
вместо. 38 байтC (gcc) ,
108104 байта-4 байта благодаря потолку
Попробуйте онлайн!
источник