https://leetcode-cn.com/problems/integer-to-roman/submissions/
    image.png
    因为题目说了整数范围不会超过3999,因此我们可以提前做好映射,然后分别取千位数字,百位数字,个位数字去做对应的映射

    1. public String intToRoman(int num) {
    2. String[][] c = {
    3. {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},
    4. {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},
    5. {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},
    6. {"", "M", "MM", "MMM"}};
    7. StringBuilder sb = new StringBuilder();
    8. sb.append(c[3][num / 1000 % 10])
    9. .append(c[2][num / 100 % 10])
    10. .append(c[1][num / 10 % 10])
    11. .append(c[0][num % 10]);
    12. return sb.toString();
    13. }