🌕 12. 整数转罗马数字

吞佛童子2022年6月20日
  • algorithm
  • String
小于 1 分钟

🌕 12. 整数转罗马数字

难度: 🌕

问题描述

img_5.png


解法

class Solution {
    public String intToRoman(int num) {
        // 思路:
        // 根据步骤,一步步从 M 开始分解,直到分解到 I
        // 每次从大的开始分解,由于 4 9 特殊性,最多只能分解一次,有点类似贪心
        StringBuilder sb = new StringBuilder();
        String[] array = new String[] {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
        int[] nums = new int[] {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
        int len = array.length;
        for(int i = 0; i < len; i ++) {
            while(num >= nums[i]) {
                sb.append(array[i]);
                num -= nums[i];
            }
        }
        return sb.toString();
    }
}

输出

img_4.png

上次编辑于: 2022/6/20 下午8:24:47
贡献者: liuxianzhishou