あなたの仕事は、与えられた正の整数をアラビア数字からローマ数字に変換することです。
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
得点
これはcode-golfです。バイト単位の最短コードが勝ちます。
(IV)
4000の許容表現は?