Algorithms‎ > ‎

Integer Numbers to Roman Numerals

Convert integer numbers to Roman numerals (C++) 

std::string IntegerToRoman(int number)

{

    std::string roman = "";

    std::string bigRoman = "";

    

    int level = 0;

    

    char romanChars[] = {'I''V''X''L''C''D''M'};

    

    while (number > 0) {

        roman = "";

        int num1 = number % 10;

        number -= num1;

        if (num1 >= 4 && num1 <= 9)

        {

            num1 = num1 - 5;

            if (num1 == 4)

            {

                roman = roman + romanChars[level + 2];

                num1 = num1 - 5;

            }

            else

            {

                roman = roman + romanChars[level + 1];

            }

            

        }

        if (num1 == -1 || num1 == 4)

        {

            roman = romanChars[level] + roman;

        }

        else

        {

            while (num1 > 0)

            {

                num1 -= 1;

                roman += romanChars[level];

            }

        }

        number = number / 10;

        level += 2;

        

        bigRoman = roman + bigRoman;

    }

    return bigRoman;

}