您的任务是将给定的正整数从阿拉伯数字转换为罗马数字。
当您计数到4000时,事情就会变得困难。
罗马人通过在符号上方添加一条线将该符号乘以来做到这一点1 000
。但是,上划线不能完全以ASCII显示。此外,还有两次将符号乘以的上划线1 000 000
,然后是三次将符号乘以的上划线1 000 000 000
,等等。
因此,我决定使用括号代替上划线。
这些符号可以单独放在括号中。例如,(VI)
和和(V)(I)
都是的有效表示形式6 000
。(V)M
也是6000的有效表示形式。
(I)
是一种有效的表示方式1 000
。
测试用例
Input: 1
Output: I
Input: 2
Output: II
Input: 3
Output: III
Input: 4
Output: IV
Input: 15
Output: XV
Input: 40
Output: XL
Input: 60
Output: LX
Input: 67
Output: LXVII
Input: 400
Output: CD
Input: 666
Output: DCLXVI
Input: 3000
Output: MMM
Input: 3999
Output: MMMCMXCIX
Input: 4000
Output: M(V)
Input: 4999
Output: M(V)CMXCIX
Input: 6000
Output: (VI)
Input: 6000000
Output: ((VI))
Input: 6006000
Output: ((VI)VI)
Input: 6666666666
Output: (((VI)DCLXVI)DCLXVI)DCLXVI
计分
这是代码高尔夫球。以字节为单位的最短代码获胜。
1
为什么这不是重复的理由使规范混乱。没有IMO会更好。
—
Mego 2016年
我在哪里添加理由?
—
Leaky Nun
别说了。如果有人质疑它是否重复,请在评论或聊天中进行讨论。
—
Mego 2016年
@Mego完成。:-)
—
Leaky Nun
是
—
尼尔
(IV)
4000可接受的代表性?