В свое время телефонные автодозвонщики использовали перфокарты с одним столбцом для каждой цифры набираемого номера. Колонны имели семь рядов. Первые три строки представляли числа (1,2,3), (4,5,6) и (7,8,9) соответственно. Последние три ряда повернули это расположение на 90 °: (1,4,7), (2,5,8) и (3,6,9). Средний ряд был использован для 0. Любая цифра 1-9 будет иметь два пробитых отверстия - одно в первых трех рядах и одно в трех нижних рядах. Ноль пробил бы только средний ряд. Давайте представим перфорированный столбец для числа 6 ( .
не перфорирован, x
перфорирован, направляющая слева - просто для иллюстрации кодировки):
123 .
456 x
789 .
0 .
147 .
258 .
369 x
Мы ищем, какие строки содержат номер, который мы пытаемся набрать. Для 6 это второй ряд и девятый ряд. Эти два ряда перфорированы, остальные пять рядов перфорированы. Вот перфорированные шаблоны для всех цифр 0-9:
0 1 2 3 4 5 6 7 8 9
123 . x x x . . . . . .
456 . . . . x x x . . .
789 . . . . . . . x x x
0 x . . . . . . . . .
147 . x . . x . . x . .
258 . . x . . x . . x .
369 . . . x . . x . . x
Ваша цель состоит в том, чтобы (написать программу или функцию) пробить эти карты для меня.
Входные данные: число, принятое в любом приемлемом формате (строка, целое число, список целых чисел и т. Д.), Не должно превышать 9999999999999.
Вывод: Сетка перфорированных столбцов, соответствующая числовому вводу. Вам не нужны заголовки или дополнительный интервал, показанный выше, только сами перфорированные столбцы. Лидирующие / завершающие символы новой строки в порядке, как и пробелы между строками / столбцами, если они согласованы . Говоря о том, что до тех пор, пока они согласованы, вы можете использовать любой (непробельный) символ для перфорированных и любой другой символ для перфорированных (хотя это должно быть очевидно, пожалуйста, укажите, какие символы вы используете).
Это код-гольф, поэтому выигрывает самый короткий код. Стандартные лазейки запрещены.
Контрольные примеры (все используют .
для неперфорированных, x
для перфорированных):
In: 911
Out: .xx
...
x..
...
.xx
...
x..
In: 8675309
Out: ....x..
.x.x...
x.x...x
.....x.
..x....
x..x...
.x..x.x
In: 5553226
Out: ...xxx.
xxx...x
.......
.......
.......
xxx.xx.
...x..x
Ответы:
Желе , 13 байт
Попробуйте онлайн!
1
= проколотый0
= не проколотый.источник
Pyth, 25 байт
Используется
0
для перфорированных и"
неперфорированных.Попробуй здесь
объяснение
источник
JavaScript (ES6),
6054 байтаПринимает ввод как массив целых чисел. Возвращает двоичную матрицу с 0 = неперфорированная / 1 = перфорированная.
Попробуйте онлайн!
источник
05AB1E ,
1615 байтИспользует 0 и 1 .
Попробуйте онлайн!
объяснение
источник
SOGL V0.12 , 23 байта
Попробуй здесь!
Сжатие.
источник
Python 2 , 84 байта
Попробуйте онлайн!
0/1
используется для перфорирования / перфорирования.источник
Python 3 ,
8480 байтПопробуйте онлайн!
источник
С (лязг) ,
108107 байтПопробуйте онлайн!
Принимает входной номер в виде строки. Печать выводится в
.
иX
как в примерах.кредиты
-1 байтовое спасибо @ только для ASCII
источник
putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))c-=48
вместоc-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))
J ,
3120 байт-11 байт благодаря FrownyFrog!
Попробуйте онлайн!
J , 31 байт
Попробуйте онлайн!
Принимает ввод как список цифр
0 - не перфорировано, 1 - перфорировано
Объяснение:
источник
Холст ,
2725 байтовПопробуй это здесь!
источник
Древесный уголь , 28 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Использует 0/1, но может поддерживать произвольные символы стоимостью 1 байт: попробуйте онлайн! , Объяснение:
источник
Perl 5
-F
, 52 байтПопробуйте онлайн!
Используется
1
для перфорированных и0
неперфорированных.источник