public class Solution { public String intToRoman(int num) { StringBuilder result = new StringBuilder(); char[] roman = {'I', 'V', 'X', 'L', 'C', 'D', 'M'}; int digit, base = 1000; for (int i = roman.length + 1; i >= 0 && num > 0; i -= 2, base /= 10) { digit = num / base; if (digit == 0) { continue; } else if (digit <= 3) { for (int j = 0; j < digit; j ++) { result.append(roman[i - 2]); } } else if (digit == 4) { result.append(roman[i - 2]); result.append(roman[i - 1]); } else if (digit <= 8) { result.append(roman[i- 1]); for (int j = digit - 5; j > 0; j --) { result.append(roman[i - 2]); } } else if (digit == 9) { result.append(roman[i - 2]); result.append(roman[i]); } num = num % base; } return result.toString(); } }