Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
了解罗马数字构造规则即可
class Solution {
public:
string intToRoman(int num)
{
string one[11] = {"0","I","II","III","IV","V","VI","VII","VIII","IX","X"};
string ten[11] = {"0","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
string hundred[11] = {"0","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
string thousand[11] = {"0,","M","MM","MMM"};
string res = "";
if(num >= 1000)
{
int t = num/1000;
res += thousand[t];
num %= 1000;
}
if(num >= 100)
{
int t = num/100;
res += hundred[t];
num %= 100;
}
if(num >= 10)
{
int t = num/10;
res += ten[t];
num %= 10;
}
if(num)
{
res += one[num];
}
return res;
}
};

本文介绍了一种将整数转换为罗马数字的算法实现,输入范围限制在1到3999之间。通过定义不同位数对应的罗马数字字符串数组,采用简单的取模运算实现了从千位到个位的逐位转换。
889

被折叠的 条评论
为什么被折叠?



