12. Integer to Roman

一、题目

  1、审题:

    

  2、分析

    输入数字,转化为罗马符号输出,数范围为 1-3999.

 

二、解答

  1、分析:

    ①将罗马数字符号的 千位、百位、十位、各位 均列出分别作为一个数组;

    ②输入的数字各个位数分别为①中的数组的下标,进行拼装即可;

class Solution {
    public String intToRoman(int num) {

        StringBuffer sb = new StringBuffer("");
        String[] arr4 = new String[]{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        String[] arr3 = new String[]{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
        String[] arr2 = new String[] {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
        String[] arr1 = new String[] {"", "M", "MM", "MMM"};

        int temp1 = num / 1000;
        num %= 1000;
        int temp2 = num / 100;
        num %= 100;
        int temp3 = num / 10;
        num %= 10;

        return  sb.append(arr1[temp1])
                    .append(arr2[temp2])
                    .append(arr3[temp3])
                    .append(arr4[num])
                    .toString();

    }
}

 

posted @ 2018-08-01 21:17  skillking2  阅读(112)  评论(0编辑  收藏  举报