Skip to content

Instantly share code, notes, and snippets.

@Dimanaux
Last active August 13, 2017 13:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dimanaux/86042be74632262282a8ee03b2e5f0d7 to your computer and use it in GitHub Desktop.
Save Dimanaux/86042be74632262282a8ee03b2e5f0d7 to your computer and use it in GitHub Desktop.
there is a function that converts numbers from decimal to roman
#include <map>
#include <string>
std::string decimalToRoman(int n) {
std::string roman = "";
const std::map<int, std::string> rd = {
{1000, "M"},
{900, "CM"},
{500, "D"},
{400, "CD"},
{100, "C"},
{90, "XC"},
{50, "L"},
{40, "XL"},
{10, "X"},
{9, "IX"},
{5, "V"},
{4, "IV"},
{1, "I"},
{0, "0"} // IS NEVER USED
};
// doing like this because of sorted structure of std::map, { 0: "0" } too
for (auto it = end(rd); it != begin(rd); --it) {
while (n >= (*it).first) {
n -= (*it).first,
roman += (*it).second;
}
}
return roman;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment