いくつかの背景
カウンティングロッドは小さな棒(長さ3〜14 cm)で、2000年以上にわたって多くのアジアの文化の数学者が整数または分数を表すために使用していました。(ただし、このchqllengeでは、符号なし整数に焦点を当てています)ロッド番号と呼ばれるバージョンも作成されました。
仕組みは次のとおりです。
(いつか混乱した場合は、各桁のASCII表記と、下部に含めたいくつかの例を確認してください)
ロッド数字は、1〜9の数字と0の空白を持つ真の位置数字システムです。数字は水平線と垂直線で構成されます。行が多いほど、桁が高くなります。5を超えたら、水平線を上に配置して、下の行数に5を追加します。1本の垂直線は1、2本の垂直線2、5本の垂直線は5、5本の垂直線は上部に水平線があり、4本の垂直線は上部に水平線が9(最上位桁)です。
縦3桁:
|||
|||
|||
|||
|||
ただし、ロッドの数字を読みやすくするために、交互の数字ごとに異なる表記法を使用しています。2番目の表記は、水平線と垂直線の役割を入れ替えます。したがって、3は3本の水平線で、8は垂直線が上にある3本の水平線で表されます。
横8桁:
|
|
__|__
_____
_____
先に述べたように、どちらの表記を使用するかは簡単ですが、これらは交互に使用され、Sun Tzuは「1つは垂直、10つは水平」と書いています。したがって、右端の数字は垂直であり、そこから交互になります。
チャレンジ
これらの棒は、負の数と分数を表すために使用されました(それらに関するウィキペディアの記事で説明されています)。この課題では、正の整数のみに焦点を当てますが、目的は単純です:
何らかの方法で整数値を入力として受け取り、この整数のロッド数値表現をSTDOUTに出力する関数または完全なプログラムを記述します(うまくいく場合は、ファイルに書き込むこともできます)。バイト単位の最短コードが優先されます。
すべての数字は5x5のASCII文字で表され、5つのスペースで構成される2つの列で区切られます。各桁に使用する正確な表現は次のとおりです。
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
_____ _____
|| || _____
|| || _____
|| || _____
|| || _____