ローマ数字を整数に変換する方法を見つけようとしています。これは私のコードの一部です。ユーザーに M を入力するように求めると 1000 と表示されますが、ユーザーに VM などのローマ数字を入力するように求めると、995 ではなく 1005 が表示されます。これは、プログラムにそれを行うように指示しているためです。
私が理解しようとしているのは、どのように先を見越して、ローマ数字を加算または減算しているのかを知る方法です。
どうすればこれを始められますか?
class Roman
{
public int inprogress = 0;
public Roman(string roman)
{
char temp = 'Z';
int length;
length = roman.Length;
for (int i = 0; i < length; i++)
{
temp = roman[i];
if (temp == 'M')
{
inprogress = inprogress + 1000;
}
if (temp == 'D')
{
inprogress = inprogress + 500;
}
if (temp == 'C')
{
inprogress = inprogress + 100;
}
if (temp == 'L')
{
inprogress = inprogress + 50;
}
if (temp == 'X')
{
inprogress = inprogress + 10;
}
if (temp == 'V')
{
inprogress = inprogress + 5;
}
if (temp == 'I')
{
inprogress = inprogress + 1;
}
}
}
}