Algorithms‎ > ‎

Roman Numerals to Integer Numbers

Convert Roman numerals to integer numbers  (C++)


int RomanToInteger(std::string roman)

{

    std::map <charint> romanChars;

    romanChars['I'] = 1;

    romanChars['V'] = 5;

    romanChars['X'] = 10;

    romanChars['L'] = 50;

    romanChars['C'] = 100;

    romanChars['D'] = 500;

    romanChars['M'] = 1000;

    

    int l = roman.length();

    

    int prevValue = 1;

    int number = 0;

    for(int i = 0; i < roman.length(); i++)

    {

        int val = romanChars[roman[l - i - 1]];

        if (val >= prevValue)

        {

            number += val;

        }

        else

        {

            number -= val;

        }

        prevValue = val;

    }

    return number;

}