12. 整数转罗马数字

对各个位的值分别处理

class Solution {
    public String intToRoman(int num) {
        String res = "";
        //先将数字分成至多四个数字的和
        int num1 = num/1000;//千
        int num2 = (num%1000)/100;//百
        int num3 = (num/10)%10;//十
        int num4 = num%10;//个
        for(int i = 0; i < num1; i++){
            res += "M";
        }
        if(num2 > 0){
            if(num2 == 4) res += "CD";
            else if(num2 ==9) res +="CM";
            else{
                if(num2 >=5){
                    res+="D";
                    num2 -=5;
                } 
                for(int i = num2; i >0; i--){
                    res+="C";
                }
            }
        }
        if(num3 > 0){
            if(num3 == 4) res += "XL";
            else if(num3 ==9) res +="XC";
            else{
                if(num3 >=5){
                    res+="L";
                    num3 -=5;
                } 
               for(int i = num3; i >0; i--){
                    res+="X";
                }
            }
        }
        if(num4 > 0){
            if(num4 == 4) res += "IV";
            else if(num4 ==9) res +="IX";
            else{
                if(num4 >=5){
                    res+="V";
                    num4 -=5;
                } 
                for(int i = num4; i >0; i--){
                    res+="I";
                }
            }
        }
        return res;
    }
}
posted @ 2025-04-14 19:23  破忒头头  阅读(12)  评论(0)    收藏  举报