Некоторый фон
Счетные палочки - это маленькие столбики (длиной 3-14 см), которые использовались математиками из многих азиатских культур в течение более 2000 лет для представления любого целого числа или дроби. (В этом chqllenge мы сосредоточимся на целых числах без знака). Была также письменная версия, называемая цифрами стержня.
Вот как это работает:
(Если в какой-то момент вы запутались, посмотрите представление ascii каждой цифры и некоторые примеры, которые я включил внизу)
Цифры стержня представляют собой систему истинных позиционных цифр с цифрами для 1-9 и пробелом для 0. Цифры состоят из горизонтальных и вертикальных линий; чем больше строк, тем выше цифра. Как только вы дойдете до пяти, вы положите горизонтальную линию сверху, чтобы добавить 5 к числу линий ниже. Одна вертикальная линия равна 1, две вертикальные линии 2, пять вертикальных линий - 5, одна вертикальная линия с горизонтальной линией сверху - 6, четыре вертикальные линии с горизонтальной линией сверху - 9 (самая высокая цифра).
Вертикальная 3 цифра:
|||
|||
|||
|||
|||
Чтобы упростить чтение чисел стержней, они использовали разные обозначения для каждой чередующейся цифры. Второе обозначение меняет роль горизонтальных и вертикальных линий. так что 3 представлен тремя горизонтальными линиями, а 8 - тремя горизонтальными линиями с вертикальной линией сверху.
Горизонтальная 8 цифра:
|
|
__|__
_____
_____
Зная, какую нотацию использовать легко, как уже говорилось ранее, они используются поочередно, и Сунь Цзы писал, что «один вертикальный, десять горизонтальный». Таким образом, самая правая цифра является вертикальной, и мы чередуем с этого момента.
Соревнование
Эти стержни использовались для представления отрицательных чисел и дробей (как описано в статье в Википедии о них . Для целей этого задания мы сосредоточимся только на положительных целых числах. Цель проста:
Напишите функцию или полную программу, которая каким-либо образом принимает целочисленное значение в качестве входных данных и печатает числовое представление стержня этого целого числа в STDOUT (вы также можете записать в файл, если это сработает лучше). Самый короткий код в байтах побеждает.
Каждая цифра будет представлена 5x5 символами ascii и разделена двумя столбцами из 5 пробелов. Точное представление, которое вы будете использовать для каждой цифры, выглядит следующим образом:
space between two digits (two colums):
0 digit, both vertical and horizontal (five columns):
1 digit, vertical:
|
|
|
|
|
2 digit, vertical:
| |
| |
| |
| |
| |
3 digit, vertical:
|||
|||
|||
|||
|||
4 digit, vertical:
|| ||
|| ||
|| ||
|| ||
|| ||
5 digit, vertical:
|||||
|||||
|||||
|||||
|||||
6 digit, vertical:
_____
|
|
|
|
7 digit, vertical:
_____
| |
| |
| |
| |
8 digit, vertical:
_____
|||
|||
|||
|||
9 digit, vertical:
_____
|| ||
|| ||
|| ||
|| ||
1 digit, horizontal:
_____
2 digit, horizontal:
_____
_____
3 digit, horizontal:
_____
_____
_____
4 digit, horizontal:
_____
_____
_____
_____
5 digit, horizontal:
_____
_____
_____
_____
_____
6 digit, horizontal:
|
|
|
|
__|__
7 digit, horizontal:
|
|
|
__|__
_____
8 digit, horizontal:
|
|
__|__
_____
_____
9 digit, horizontal:
|
__|__
_____
_____
_____
Цифры должны быть напечатаны рядом друг с другом. Конечные пробелы за ограничительной рамкой последней цифры не допускаются. Необходимы пробелы для заполнения ограничительной рамки последней цифры (цифр). Вы должны завершить вывод одной новой конечной строкой. Пробелы, не принадлежащие ограничительной рамке первой цифры, также запрещены.
Применяются стандартные лазейки.
Пример вывода
Строки, начинающиеся с >
, должны интерпретироваться как ввод.
>12
| |
| |
| |
| |
_____ | |
>8037
| _____
| | |
__|__ _____ | |
_____ _____ | |
_____ _____ | |
>950
_____ _____
|| || _____
|| || _____
|| || _____
|| || _____