class Solution {
public:
string intToRoman(int num) {
map<int,string> mp;
mp.insert(make_pair(1,"I"));
mp.insert(make_pair(2,"II"));
mp.insert(make_pair(3,"III"));
mp.insert(make_pair(4,"IV"));
mp.insert(make_pair(5,"V"));
mp.insert(make_pair(6,"VI"));
mp.insert(make_pair(7,"VII"));
mp.insert(make_pair(8,"VIII"));
mp.insert(make_pair(9,"IX"));
mp.insert(make_pair(10,"X"));
mp.insert(make_pair(20,"XX"));
mp.insert(make_pair(30,"XXX"));
mp.insert(make_pair(40,"XL"));
mp.insert(make_pair(50,"L"));
mp.insert(make_pair(60,"LX"));
mp.insert(make_pair(70,"LXX"));
mp.insert(make_pair(80,"LXXX"));
mp.insert(make_pair(90,"XC"));
mp.insert(make_pair(100,"C"));
mp.insert(make_pair(200,"CC"));
mp.insert(make_pair(300,"CCC"));
mp.insert(make_pair(400,"CD"));
mp.insert(make_pair(500,"D"));
mp.insert(make_pair(600,"DC"));
mp.insert(make_pair(700,"DCC"));
mp.insert(make_pair(800,"DCCC"));
mp.insert(make_pair(900,"CM"));
mp.insert(make_pair(1000,"M"));
mp.insert(make_pair(2000,"MM"));
mp.insert(make_pair(3000,"MMM"));
string res;
int d;
if(num>=1000)
d=1000;
else if(num>=100)
d=100;
else if(num>=10)
d=10;
else
d=1;
while(d>1)
{
if(num/d>0)
{
res+=mp[num/d*d];
num-=num/d*d;
}
d/=10;
}
if(num)
res+=mp[num];
return res;
}
};
leetcode 12: Integer to Roman
最新推荐文章于 2022-12-16 00:28:08 发布