挑战
给定输入的巴比伦数字的ASCII表示,以西方阿拉伯数字输出数字。
巴比伦数字系统
巴比伦人如何计算?有趣的是,他们将Base 60系统与Base 10系统一起使用。让我们首先考虑系统的unit列:
巴比伦人只有三个符号:(T
或者,如果您可以渲染它:)𒐕
代表1,<
(或者,如果您可以渲染它:)𒌋
代表10,和\
(或者,如果您渲染它:)则𒑊
代表零。
注意:从技术上讲,\
(或𒑊
)不为零(因为巴比伦人没有“零”的概念)。后来发明了“零”,所以后来又\
添加了一个占位符以防止歧义。但是,就此挑战而言,将其视为\
零就足够了
因此,在每一列中,您只需将符号的值相加即可,例如:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
每列中不得超过五个<
或超过九个T
。\
将始终单独出现在列中。
现在,我们需要扩展它以添加更多列。这与任何其他基数60完全相同,在此基础上,您将最右边的列的值乘以,将左边的一乘以60 1,将左边的一乘以60 2,依此类推。然后,您将每个值相加以获得数字的值。
列将由空格分隔以防止歧义。
一些例子:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
规则
- 您可以自由接受ASCII输入(
T<\
)或Unicode输入(𒐕𒌋𒑊
) - 输入的数字将始终小于
- 该
<
旨意始终是左边的T
每列S \
将始终单独出现在列中
获奖
以字节为单位的最短代码获胜。
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
今天仍在使用;巴比伦数字系统正是我们用于时钟的系统。分别为秒,分钟和小时的两位十进制数字,分钟为60秒,小时为60分钟。