d369. 1. 羅馬數字
標籤 :
通過比率 : 217人/235人 ( 92% ) [非即時]
評分方式:
Tolerant

最近更新 : 2009-08-12 10:16

內容
強森是一名歷史學家,在閱讀歷史文獻時,有些文獻會以羅馬數字代表年、月、日,有些文獻則以阿拉伯數字代表年、月、日。
因此強森常常需要將歷史文獻中的年份在羅馬數字與阿拉伯數字間做轉換。
請寫一個程式幫強森自動的進行數字表示法的轉換。
羅馬數字表示法說明:羅馬數字只用到七個符號:{I, V, X, L, C, D, M}。這七個符號分別代表1, 5, 10, 50, 100, 500, 1000。
用這七個符號(可重複使用)依不同的順序排列,就可以造出任何十進位阿拉伯數字。
羅馬數字轉換到阿拉伯數字的規則很簡單,基本上只需將所有羅馬數字符號所代表的數字加總
但是如果有兩個相鄰的羅馬數字符號其左邊的符號小於右邊的符號時
則這兩個羅馬數字符號所代表的阿拉伯數字則為右邊的羅馬數字減掉左邊的羅馬數字。
例如MMCMXCIX = M + M + CM + XC +IX = 1000 + 1000 + (1000-100) + (100-10) + (10-1) = 2999。
羅馬數字不會有連續三個以上的由小到大的情形。
例如,IVX 就不是一個合法的羅馬數字。
從阿拉伯數字轉換成羅馬數字的時候,請統一從高位數字開始轉換,如1989,可看1000+900+80+9
轉換時由千位數開始先輸出M,然後接著依序輸出百位數CM、十位數LXXX、個位數IX,得出MCMLXXXIX。
輸入說明
第一行有一整數n ,代表共有n 個數字需要進行轉換,1<= n <= 5。
接下來的n行每行有兩個數字。第一個數字可以是「1」或「2」。
如果第一個數字是「1」,則代表第二個數字是羅馬數字。
如果第一個數字是「2」,則代表第二個數字是阿拉伯數字。
測試資料中羅馬數字最長不超過12 個符號,阿拉伯數字最大亦不超過2007。
第二行起,每行的兩個數字都以一個空白隔開。
輸出說明
針對所輸入的羅馬數字或阿拉伯數字,依序輸出其對應的阿拉伯數字或羅馬數字,每行輸出一個數字。
範例輸入 #1
3
1 CCC
2 40
2 1502
範例輸出 #1
300
XL
MDII
測資資訊:
記憶體限制: 512 MB
提示 :
標籤:
出處:
96學年度全國資訊學科能力競賽 [管理者: pcshic (PCSHIC) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
41185 1554101-0@g. ... (P6A29_1300題了) d369
Python 部分代碼
302 2024-07-09 22:05
34038 yp11051026@y ... (911-24吳秉儒) d369
275 2023-02-25 00:00
19755 089487 (089487) d369
1098 2019-10-27 11:52