タイトル説明
整数を考えると、ローマ数字に変換します。入力は3999から1の範囲にあることを保証します。
思考
まず、文字列のデジタル変換、1つの工程ずつ、関数呼び出し缶のヘルプ
コード
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;
}
};