2021-03-18(12. 整数转罗马数字)

class Solution {
    public String intToRoman(int num) {
        
        if(num==4){
            return "IV";
        }else if(num==400){
            return "CD";
        }else if(num==9){
            return "IX";
        }else if(num==40){
            return "XL";
        }else if(num==90){
            return "XC";
        }else if(num==900){
            return "CM";
        }

        StringBuilder strB = new StringBuilder();
        while(num!=0){
            if(num>=1000){
                int temp=num/1000;
                while(temp!=0){
                    strB.append("M");
                    --temp;
                }
                num=num%1000;
            }else if(num>=500){
                if(num>=900){
                    strB.append("CM");
                    num=num%900;
                }else{
                    int temp=num/500;
                    while(temp!=0){
                        strB.append("D");
                        --temp;
                    }
                    num=num%500;
                }
            }else if(num>=100){
                if(num>=400){
                    strB.append("CD");
                    num=num%400;
                }else{
                    int temp=num/100;
                    while(temp!=0){
                        strB.append("C");
                        --temp;
                    }
                    num=num%100;    
                }
            }else if(num>=50){
                if(num>=90){
                    strB.append("XC");
                    num=num%90;
                }else{
                    int temp=num/50;
                    while(temp!=0){
                        strB.append("L");
                        --temp;
                    }
                    num=num%50;
                }
            }else if(num>=10){
                if(num>=40){
                    strB.append("XL");
                    num=num%40;
                }else{
                    int temp=num/10;
                    while(temp!=0){
                        strB.append("X");
                        --temp;
                    }
                    num=num%10;
                }
            }else if(num>=5){
                if(num>=9){
                    strB.append("IX");
                    num=num%9;
                }else{
                    int temp=num/5;
                    while(temp!=0){
                        strB.append("V");
                        --temp;
                    }
                    num=num%5;
                }
            }else{
                if(num==4){
                    strB.append("IV");
                    num-=4;
                }else{
                    while(num!=0){
                        strB.append("I");
                        --num;
                    }
                }
            }
        }
        return strB.toString();
    }
}

嘿嘿,好久没时间击败100%了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值