Intger to Roman

class Solution {
public:
string intToRoman(int num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(num<=0||num>3999)
return "";
string temp = "";
int n = num/1000;
while(n--)
{
temp += 'M';
}
num %= 1000;
n = num/100;
if(n != 0)
{
if(n<4)
{
while(n--)
{
temp += 'C';
}
}
else if(n==4)
{
temp += "CD";
}
else if(n<9)
{
temp += 'D';
n -= 5;
while(n--)
{
temp += 'C';
}
}
else if(n==9)
{
temp += "CM";
}
}
num %= 100;
n = num/10;
if(n != 0)
{
if(n<4)
{
while(n--)
{
temp += 'X';
}
}
else if(n==4)
{
temp += "XL";
}
else if(n<9)
{
temp += 'L';
n -= 5;
while(n--)
{
temp += 'X';
}
}
else if(n==9)
{
temp +="XC";
}
}
num %= 10;
n = num;
if(n != 0)
{
if(n<4)
{
while(n--)
{
temp += 'I';
}
}
else if(n==4)
{
return temp +"IV";
}
else if(n<9)
{
temp += 'V';
n -= 5;
while(n--)
{
temp += 'I';
}
}
else if(n==9)
{
return temp + "IX";
}
}
return temp;
}
};

原文地址:https://www.cnblogs.com/727713-chuan/p/3305886.html