1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
string roman_digits (short & num, const string digits, int val)
{ string temp;
while (num >= val)
{ temp += digits; // Append roman digit(s)
num -= val;
}
return temp;
}
string roman_from_int(short num)
{ string romnum;
romnum += roman_digits (num, "M", 1000);
romnum += roman_digits (num, "CD", 900);
romnum += roman_digits (num, "D", 500);
romnum += roman_digits (num, "CD", 400);
romnum += roman_digits (num, "C", 100);
romnum += roman_digits (num, "XC", 90);
romnum += roman_digits (num, "L", 50);
romnum += roman_digits (num, "XL", 40);
romnum += roman_digits (num, "X", 10);
romnum += roman_digits (num, "IX", 9);
romnum += roman_digits (num, "V", 5);
romnum += roman_digits (num, "IV", 4);
romnum += roman_digits (num, "I", 1);
return romnum;
}
|