#20441: Python


wanttogo0718@gmail.com (Hello World)

School : 國立高雄師範大學
ID : 86382
IP address : [220.143.12.208]
Last Login :
2020-05-13 01:53:06
a013. 羅馬數字 -- NPSC 模擬試題 | From: [42.75.130.153] | Post Date : 2020-01-23 08:39

解題思維

1. 羅馬轉阿拉伯

r2i = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}

r_num1 = input()
list1 = [r2i[c] for c in r_num1]
 
#20442: Re:Python


wanttogo0718@gmail.com (Hello World)

School : 國立高雄師範大學
ID : 86382
IP address : [220.143.12.208]
Last Login :
2020-05-13 01:53:06
a013. 羅馬數字 -- NPSC 模擬試題 | From: [42.75.130.153] | Post Date : 2020-01-23 08:56

剛手殘上傳了TAT

完整如下:

 

解題思維

1. 羅馬轉阿拉伯

IV -> (-1)*1 + 5 -> 4

XC -> (-1)*10 + 100 -> 90

r2i = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
 
r_num1 = input()
list1 = [r2i[c] for c in r_num1] # 字母轉代表的數字(ex: V -> 5)
for i in range(len(list1) - 1):
    if list1[i] < list1[i+1]: list1[i] *= -1 # 如果比list的下一項大,則倒數

num1 = sum(list1)
 
 
2. 阿拉伯轉羅馬:
 
i2r = {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'}
r_str = ''
while num > 0:
    for key in i2r:
        if num >= key:
            r_str += i2r[key]
            num -= key
            break
 
 
 
 
 
 
 
 
#20443: Re:Python


asnewchien@gmail.com (david)

School : 南投縣立草屯國中
ID : 68108
IP address : [61.223.53.193]
Last Login :
2020-07-20 13:38:19
a013. 羅馬數字 -- NPSC 模擬試題 | From: [36.232.34.42] | Post Date : 2020-01-23 10:28

剛手殘上傳了TAT

完整如下:

 

解題思維

1. 羅馬轉阿拉伯

IV -> (-1)*1 + 5 -> 4

XC -> (-1)*10 + 100 -> 90

r2i = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
 
r_num1 = input()
list1 = [r2i[c] for c in r_num1] # 字母轉代表的數字(ex: V -> 5)
for i in range(len(list1) - 1):
    if list1[i] < list1[i+1]: list1[i] *= -1 # 如果比list的下一項大,則倒數

num1 = sum(list1)
 
 
2. 阿拉伯轉羅馬:
 
i2r = {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'}
r_str = ''
while num > 0:
    for key in i2r:
        if num >= key:
            r_str += i2r[key]
            num -= key
            break
 
 
 
 
 
 
 


別貼答案,讓別人可以好好練習。

 
ZeroJudge Forum