일부 배경
카운팅로드 는 2000 년 이상 많은 아시아 문화권의 수학자들이 정수 또는 분수를 나타내는 작은 막대 (길이 3-14cm)입니다. (이 chqllenge에서 우리는 부호없는 정수에 중점을 둡니다.) 막대 숫자라는 서면 버전도있었습니다.
작동 방식은 다음과 같습니다.
(어떤 시점에서 혼란 스러우면 각 숫자의 ASCII 표현과 하단에 포함 된 일부 예를 확인하십시오.)
막대 숫자는 1-9의 숫자와 0의 공백이있는 실제 위치 숫자 시스템입니다. 숫자는 가로 및 세로 선으로 구성됩니다. 줄이 많을수록 숫자가 높아집니다. 5 개가 지나면 수평선을 맨 아래에 놓고 아래의 숫자에 5를 더합니다. 1 개의 수직선은 1, 2 개의 수직선 2, 5 개의 수직선은 5, 상단에 수평선이있는 1 개의 수직선은 6, 상단에 수평선이있는 4 개의 수직선은 9 (가장 큰 숫자)입니다.
세로 3 자리 :
|||
|||
|||
|||
|||
그럼에도 불구하고 막대 숫자를 쉽게 읽을 수 있도록 각 교호 자리마다 다른 표기법을 사용했습니다. 두 번째 표기법은 가로선과 세로선의 역할을 바꿉니다. 따라서 3은 3 개의 수평선으로 표시되고 8은 3 개의 수평선으로 표시되며 수직선은 맨 위에 표시됩니다.
가로 8 자리 :
|
|
__|__
_____
_____
앞에서 언급했듯이 어떤 표기법을 사용하는 것이 쉬운 지 아는 것은 tehy가 교대로 사용되며 Sun Tzu 는 "하나는 수직이고 10은 수평"이라고 썼다. 그래서 가장 오른쪽 자리는 수직이며 우리는 그 자리에서 번갈아 가며 나타납니다.
도전
이 막대는 음수와 분수를 나타내는 데 사용되었습니다 (위의 위키 백과 기사에 설명되어 있음) .이 문제를 해결하기 위해 양의 정수에만 초점을 맞출 것입니다. 목표는 간단합니다.
어떤 식 으로든 정수 값을 입력으로 사용하는 함수 또는 전체 프로그램을 작성하고이 정수의 막대 숫자 표시를 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
_____ _____
|| || _____
|| || _____
|| || _____
|| || _____