用if。。。else。。。用XXXX分成4位数,每位数进行一一判断。
class Solution {
public:
string intToRoman(int num)
{
string ANS = "";
int A = num/1000;
int B = num/100 - A*10;
int C = num/10 - A*100 -B*10;
int D = num%10;
if(A>0)
{
if(A == 1)
ANS.append("M");
else if(A == 2)
ANS.append("MM");
else if(A == 3)
ANS.append("MMM");
}
if(B>=9)
ANS.append("CM");
else if(B>=8)
ANS.append("DCCC");
else if(B>=7)
ANS.append("DCC");
else if(B>=6)
ANS.append("DC");
else if(B>=5)
ANS.append("D");
else if(B>=4)
ANS.append("CD");
else if(B>=3)
ANS.append("CCC");
else if(B>=2)
ANS.append("CC");
else if(B>=1)
ANS.append("C");
if(C>=9)
ANS.append("XC");
else if(C>=8)
ANS.append("LXXX");
else if(C>=7)
ANS.append("LXX");
else if(C>=6)
ANS.append("LX");
else if(C>=5)
ANS.append("L");
else if(C>=4)
ANS.append("XL");
else if(C>=3)
ANS.append("XXX");
else if(C>=2)
ANS.append("XX");
else if(C>=1)
ANS.append("X");
if(D>=9)
ANS.append("IX");
else if(D>=8)
ANS.append("VIII");
else if(D>=7)
ANS.append("VII");
else if(D>=6)
ANS.append("VI");
else if(D>=5)
ANS.append("V");
else if(D>=4)
ANS.append("IV");
else if(D>=3)
ANS.append("III");
else if(D>=2)
ANS.append("II");
else if(D>=1)
ANS.append("I");
//cout<<A<<B<<C<<D<<endl;
//cout<<ANS<<endl;
return ANS;
}
};