#37588: python 紀錄


BensonDC (python戰士)

學校 : 不指定學校
編號 : 240921
來源 : [163.32.78.214]
最後登入時間 :
2024-11-06 14:27:58
d369. 1. 羅馬數字 -- 96學年度全國資訊學科能力競賽 | From: [42.75.193.145] | 發表日期 : 2023-09-17 23:54

Roman={1000:'M',900:'CM',500:'D',400:'CD',100:'C',90:'XC',50:'L',40:'XL',10:'X',9:'IX',5:'V',4:'IV',1:'I'}
Int={'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1}
def intToRoman(num:int) -> str:
    if num==0:
        return "ZERO"
    result=""
    for k,v in Roman.items():
        while num>=k:
            num-=k
            result=result+v
    return result
def RomanToInt(nums:str) -> int:
    result=0
    for i in range(len(nums)-1):
        if Int[nums[i]]<Int[nums[i+1]]:
            result-=Int[nums[i]]
        else:
            result+=Int[nums[i]]
    result+=Int[nums[-1]]
    return result

n=int(input())
for i in range(n):
    a,b=input().split()
    if a=='1':
        print(RomanToInt(b))
    else:
        print(intToRoman(int(b)))

 
ZeroJudge Forum