The Problem
本題請你做羅馬數字與阿拉伯數字的轉換,羅馬數字以英文字母表示數目,其對應關係如下:Letter | I | V | X | L | C | D | M |
Value | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
一般而言,羅馬數字是以字母所表示數目的大小,以遞減的方式由左至右寫出,並依序作加總。然而,有些數字的組合會導致需要做減法,如果一個表示較小值的字母在一個較大值字母的前面,則較小的值必須從較大值中減去,其結果再加到總合裡面。下列為適用減法規則的地方:
- "I"出現在"V"或"X"的前面(例:IV=4)。
- "X"出現在"L"或"C"的前面(例:XC=900)。
- "C"出現在"D"或"M"的前面。
- "V", "L", "D"後面必然接上一個較小值的字母,所以它們總是會加進總和裡面。
羅馬數字不能表示零值,且若欲表示的值大於等於4000,則他們會在數字上劃一條橫線表示該數字必需乘上1000。
本題請你寫一個程式作羅馬數字與阿拉伯數字之間的轉換,注意,羅馬數字只會包含大寫字母。
The Input
輸入有多筆測試資料,每筆資料會有一個阿拉伯數字或是一個羅馬數字,其值為 n (0 < n < 4000)。The Output
請在每一列輸出轉換結果。Sample Input
XXV 4 942 MCMLXXXIII
Sample Output
25 IV CMXLII 1983
原文出處
沒有留言:
張貼留言