https://leetcode-cn.com/problems/integer-to-roman/
思路:经典贪心问题——求解找零钱的最小张数——的变体。直接模拟即可……
class Solution {
public:
string intToRoman(int num) {
map<int,string> mp={
{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 ans;
for(auto pr=mp.rbegin();pr!=mp.rend();++pr)
{
while(num>=pr->first)
{
num-=pr->first;
ans+=pr->second;
}
}
return ans;
}
};