#30372:


bennytsai0712@gmail.com (菜耳賤)

學校 : 不指定學校
編號 : 192924
來源 : [163.22.18.55]
最後登入時間 :
2022-05-22 16:01:06
a013. 羅馬數字 -- NPSC 模擬試題 | From: [163.22.18.55] | 發表日期 : 2022-05-17 01:28

#0: 100% WA (line:3)


您的答案為: II 正確答案為: ZERO
#include <iostream>
using namespace std;
int main()
{
    char b[30] = {0};
    int k = 0;
    while (cin >> b)
    {
        int a = 0, d = 0, e = 0;
        char c[30] = {0};
        for (int i = 0; i < 30; i++)
        {
            if (b[i] == '#')
            {
                k = i;
                break;
            }
            if (b[i] == 'M')
            {
                a += 1000;
            }
            if (b[i] == 'M' && b[i - 1] == 'C')
            {
                a -= 200;
            }
            if (b[i] == 'D')
            {
                a += 500;
            }
            if (b[i] == 'D' && b[i - 1] == 'C')
            {
                a -= 200;
            }
            if (b[i] == 'C')
            {
                a += 100;
            }
            if (b[i] == 'C' && b[i - 1] == 'X')
            {
                a -= 20;
            }
            if (b[i] == 'L')
            {
                a += 50;
            }
            if (b[i] == 'L' && b[i - 1] == 'X')
            {
                a -= 20;
            }
            if (b[i] == 'X')
            {
                a += 10;
            }
            if (b[i] == 'X' && b[i - 1] == 'I')
            {
                a -= 2;
            }
            if (b[i] == 'V')
            {
                a += 5;
            }
            if (b[i] == 'V' && b[i - 1] == 'I')
            {
                a -= 2;
            }
            if (b[i] == 'I')
            {
                a += 1;
            }
        }
        if (b[k] == '#')
        {
            break;
        }
        cin >> c;
        for (int i = 0; i < 30; i++)
        {
            if (c[i] == 'M')
            {
                d += 1000;
            }
            if (c[i] == 'M' && c[i - 1] == 'C')
            {
                d -= 200;
            }
            if (c[i] == 'D')
            {
                d += 500;
            }
            if (c[i] == 'D' && c[i - 1] == 'C')
            {
                d -= 200;
            }
            if (c[i] == 'C')
            {
                d += 100;
            }
            if (c[i] == 'C' && c[i - 1] == 'X')
            {
                d -= 20;
            }
            if (c[i] == 'L')
            {
                d += 50;
            }
            if (c[i] == 'L' && c[i - 1] == 'X')
            {
                d -= 20;
            }
            if (c[i] == 'X')
            {
                d += 10;
            }
            if (c[i] == 'X' && c[i - 1] == 'I')
            {
                d -= 2;
            }
            if (c[i] == 'V')
            {
                d += 5;
            }
            if (c[i] == 'V' && c[i - 1] == 'I')
            {
                d -= 2;
            }
            if (c[i] == 'I')
            {
                d += 1;
            }
        }
        if (a > d)
        {
            e = a - d;
        }
        else
        {
            e = d - a;
        }
        if (e == 0)
        {
            cout << "ZERO";
        }
        while (e >= 1000)
        {
            cout << 'M';
            e -= 1000;
        }
        while (e >= 900)
        {
            cout << "CM";
            e -= 900;
        }
        while (e >= 500)
        {
            cout << 'D';
            e -= 500;
        }
        while (e >= 400)
        {
            cout << "CD";
            e -= 400;
        }
        while (e >= 100)
        {
            cout << 'C';
            e -= 100;
        }
        while (e >= 90)
        {
            cout << "XC";
            e -= 90;
        }
        while (e >= 50)
        {
            cout << 'L';
            e -= 50;
        }
        while (e >= 40)
        {
            cout << "XL";
            e -= 40;
        }
        while (e >= 10)
        {
            cout << 'X';
            e -= 10;
        }
        while (e >= 9)
        {
            cout << "IX";
            e -= 9;
        }
        while (e >= 5)
        {
            cout << 'V';
            e -= 5;
        }
        while (e >= 4)
        {
            cout << "IV";
            e -= 4;
        }
        while (e >= 1)
        {
            cout << 'I';
            e -= 1;
        }
        cout << endl;
        for (int g = 0; g < 30; g++)
        {
            b[g] = 0;
        }
    }
    return 0;
}
 
#30376: Re: 救我


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a013. 羅馬數字 -- NPSC 模擬試題 | From: [118.160.184.173] | 發表日期 : 2022-05-17 13:50

 
b[i - 1]
c[i - 1]


如果i是0會超出陣列範圍

 
ZeroJudge Forum