题目描述
给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。
思路
首先将数字转化为字符串,逐个处理,调用help函数即可
代码
class Solution {
public:
string Help(string s, int i, int len)
{
string record = "IVXLCDMT";
string res;
int number = s[i] - '0';
if (number>0)
{
int a = number / 5;
int b = number % 5;
if (b == 4)
{
res += record[(len - i) * 2 - 2];
res += record[(len - i) * 2 - 1 + a];
}
else
{
if (a == 1)
res += record[(len - i) * 2 - 1];
while (b > 0)
{
res += record[(len - i) * 2 - 2];
b--;
}
}
}
return res;
}
string intToRoman(int num) {
string res;
string s = to_string(num);
int len = s.length();
for (int i = 0; i< len; i++)
{
res += Help(s, i, len);
}
return res;
}
};