class Solution {
public:
string cc(int num){
if(num<10&&num>=0){
switch(num){
case 0: return "";break;
case 1: return "I";break;
case 2: return "II";break;
case 3: return "III";break;
case 4: return "IV";break;
case 5: return "V";break;
case 6: return "VI";break;
case 7: return "VII";break;
case 8: return "VIII";break;
case 9: return "IX";break;
}
}
else if(num<100&&num>9){
switch(num){
case 10: return"X";break;
case 20: return"XX";break;
case 30: return"XXX";break;
case 40: return"XL";break;
case 50: return"L";break;
case 60: return"LX";break;
case 70: return"LXX";break;
case 80: return"LXXX";break;
case 90: return"XC";break;
}
}
else if(num<1000&&num>99){
switch(num){
case 100: return"C";break;
case 200: return"CC";break;
case 300: return"CCC";break;
case 400: return"CD";break;
case 500: return"D";break;
case 600: return"DC";break;
case 700: return"DCC";break;
case 800: return"DCCC";break;
case 900: return"CM";break;
}
}
else if(num<4000&&num>999){
switch (num){
case 1000: return"M";break;
case 2000: return"MM";break;
case 3000: return"MMM";break;
}
}
}
string intToRoman(int num) {
map<int,char> roman;
roman[1]='I';
roman[5]='V';
roman[10]='X';
roman[50]='L';
roman[100]='C';
roman[500]='D';
roman[1000]='M';
//每个位肢解
int yz = 1;
string res;
while(num/yz){
stringstream ss;
int temp = num%(yz*10)/yz*yz;
yz *=10;
ss<<cc(temp);
res = ss.str()+res;
}
return res;
}
};
Integer to Roman
最新推荐文章于 2022-07-26 11:13:15 发布