class Solution {
public:
string getstring(string base, int v) {
string ret = "";
//v in [0, 9]
if (v <= 3) {
for (int i = 0; i < v; ++i) {
ret += base[0];
}
} else if (v == 4) {
ret = base.substr(0, 2);
} else if (v < 9) {
ret = base[1];
for (int i = 0; i < v - 5; ++i) {
ret += base[0];
}
} else if (v == 9) {
ret = base[0];
ret += base[2];
}
return ret;
}
string intToRoman(int num) {
string ans = "";
string bases[3] = {"IVX", "XLC", "CDM"};
int th = num / 1000;
num %= 1000;
for (int i = 0; i < th; ++i) {
ans += 'M';
}
ans += getstring(bases[2], num / 100);
num %= 100;
ans += getstring(bases[1], num / 10);
ans += getstring(bases[0], num % 10);
return ans;
}
};