文章目录
原题题目
代码实现(首刷自解)
class Solution {
public:
string intToRoman(int num) {
vector<pair<int,string>> cnt{{1000,"M"},{900,"CM"},{500,"D"},{400,"CD"},
{100,"C"},{90,"XC"},{50,"L"},{40,"XL"},
{10,"X"},{9,"IX"},{5,"V"},{4,"IV"},{1,"I"}};
string ret;
int pos = 0,size = cnt.size();
while(num)
{
for(int i = pos;i < size;++i)
{
const auto& pair = cnt[i];
if(num < pair.first)
{
++pos;
continue;
}
num -= pair.first;
ret += pair.second;
break;
}
}
return ret;
}
};