Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
题意
把int型数据转换为罗马数字。
题解
根据罗马的转换制度由高到低转换即可
const int radix[]
= {1000, 900, 500, 400, 100, 90, |
50,
40, 10, 9, 5, 4, 1}; |
const string
symbol[] = { "M" , "CM" , "D" , "CD" , "C" , "XC" , |
"L" , "XL" , "X" , "IX" , "V" , "IV" , "I" }; |
class Solution {
public:
string intToRoman(int num) {
const int radix[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
const string symbol[] = {"M", "CM", "D", "CD", "C", "XC","L", "XL", "X", "IX", "V", "IV", "I"};
string roman;
for(int i=0;num>0;i++)
{
int count =num/radix[i];
num%=radix[i];
while(count-->0)
roman+=symbol[i];
}
return roman;
}
};