看这个问题之前,你应该先看一下我之前的这个博客。
因为阿拉伯数字转罗马数字是 罗马数字转阿拉伯数字的反向操作,需要逆向思维。
string NumberToRoman( int sum)
{
string str;
while (sum)
{
if (sum >= 1000)
{
str.append("M");
sum -= 1000;
}
else if (sum >= 900)
{
str.append("C");
sum += 100;
}
else if (sum >= 500)
{
str.append("D");
sum -= 500;
}
else if (sum >= 400) {
str.append("C");
sum += 100;
}
else if (sum >= 100)
{
str.append("C");
sum -= 100;
}
else if (sum >= 90)
{
str.append("X");
sum += 10;
}
else if (sum >= 50)
{
str.append("L");
sum -= 50;
}
else if (sum >= 40) {
str.append("X");
sum += 10;
}
else if (sum >= 10) {
str.append("X");
sum -= 10;
}
else if (sum >= 9) {
str.append("I");
sum += 1;
}
else if (sum >= 5) {
str.append("V");
sum -= 5;
}
else if (sum >= 4) {
str.append("I");
sum += 1;
}
else if (sum >= 1) {
str.append("I");
sum -= 1;
}
}
return str;
}