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;
}