Якесь тло
Підрахункові стрижні - це невеликі бруски (довжиною 3-14 см), які використовувались математиками з багатьох азіатських культур більше 2000 років для представлення будь-якого цілого числа чи дробу. (Хоча в цьому chqllenge ми зосередимось на непідписаних цілих числах) Існувала також письмова версія, яка називається стрижневими цифрами.
Ось як це працює:
(Якщо в будь-який момент ви заплуталися, перегляньте подання кожної цифри та деякі приклади, які я включив внизу)
Рядові цифри - це справжня позиційна система числення з цифрами для 1-9, а порожня - для 0. Цифри складаються з горизонтальних і вертикальних ліній; чим більше рядків, тим вище цифра. Як тільки ви пройдете п'ять, ви покладете горизонтальну лінію зверху, щоб додати 5 до числа рядків нижче. Одна вертикальна лінія - 1, дві вертикальні лінії 2, п'ять вертикальних - 5, одна вертикальна лінія з горизонтальною лінією зверху - 6, чотири вертикальні лінії з горизонтальною лінією зверху - 9 (найвища цифра).
Вертикальна 3 цифра:
|||
|||
|||
|||
|||
Щоб полегшити читання цифр стрижня, вони використовували різні позначення для кожної змінної цифри. Друга позначення замінює роль горизонтальної та вертикальної ліній. так що 3 представлені трьома горизонтальними лініями і 8 трьома горизонтальними лініями з вертикальною лінією зверху.
Горизонтальна 8 цифра:
|
|
__|__
_____
_____
Знаючи, яку нотацію використовувати легко, як було сказано раніше, вони використовуються по черзі, і Сунь Цзи написав, що "один вертикальний, десять - горизонтальний". Отже, найправіша цифра є вертикальною, і ми чергуємо звідти далі.
Змагання
Ці стрижні використовувались для відображення від'ємних чисел і дробів (як це пояснено у статті у Вікіпедії про них . Для цього завдання викличемо лише позитивні цілі числа. Ціль проста:
Напишіть функцію або повну програму, яка будь-яким чином приймає ціле значення як вхідне і друкує число STD-представлення цього цілого числа в STDOUT (ви також можете записати у файл, якщо це працює краще). Виграє найкоротший код у байтах.
Кожна цифра буде представлена 5х5 символами 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
_____ _____
|| || _____
|| || _____
|| || _____
|| || _____