#45480: 卡 line 7 求偵錯


315101@tchcvs.tw (116級315101資1班王立爵)

學校 : 不指定學校
編號 : 282450
來源 : [36.233.152.213]
最後登入時間 :
2025-03-07 00:44:23
a013. 羅馬數字 -- NPSC 模擬試題 | From: [36.233.152.213] | 發表日期 : 2025-03-07 00:52

dict1={'M':1000,'CM':900,'D':500,'CD':400,'C':100,'XC':90,'L':50,'XL':40,'X':10,'IX':9,'V':5,'IV':4,'I':1}
while 1 :
    list1=list(map(str,input().split()))
    s=''
    num=pnum=snum=0
    if '#' in list1:
        break
    else:
        for i in list1[0]:
            pnum+=int(dict1.get(f'{i}'))
        for f in list1[1]:
            snum+=int(dict1.get(f'{f}'))
        num=pnum-snum
        if num ==0:
            print('ZERO')
        else:
            for g,v in dict1.items():
                while num>=v:
                    num-=v
                    s+=g
            print(s)
 
#45481: Re: 卡 line 7 求偵錯


leeguanhan0909@gmail.com (李冠翰)

學校 : 高雄市苓雅區復華高級中學國中部
編號 : 276558
來源 : [36.238.156.149]
最後登入時間 :
2025-03-24 16:52:29
a013. 羅馬數字 -- NPSC 模擬試題 | From: [223.139.73.133] | 發表日期 : 2025-03-07 07:13

dict1={'M':1000,'CM':900,'D':500,'CD':400,'C':100,'XC':90,'L':50,'XL':40,'X':10,'IX':9,'V':5,'IV':4,'I':1}
while 1 :
    list1=list(map(str,input().split()))
    s=''
    num=pnum=snum=0
    if '#' in list1:
        break
    else:
        for i in list1[0]:
            pnum+=int(dict1.get(f'{i}'))
        for f in list1[1]:
            snum+=int(dict1.get(f'{f}'))
        num=pnum-snum
        if num ==0:
            print('ZERO')
        else:
            for g,v in dict1.items():
                while num>=v:
                    num-=v
                    s+=g
            print(s)


for i in list1[0]: pnum+=int(dict1.get(f'{i}')) for f in list1[1]: snum+=int(dict1.get(f'{f}'))

這兩行有誤。在輸入時要考慮有減法的情況。

例IV I,答案很明顯的是III,但程式跑出來的是V

 
#45505: Re: 卡 line 7 求偵錯


315101@tchcvs.tw (116級315101資1班王立爵)

學校 : 不指定學校
編號 : 282450
來源 : [36.233.152.213]
最後登入時間 :
2025-03-07 00:44:23
a013. 羅馬數字 -- NPSC 模擬試題 | From: [36.233.156.184] | 發表日期 : 2025-03-10 21:11

 

懂了 非常感謝

 
ZeroJudge Forum