2020--07--12 整形数字转化为罗马数

integer-to-roman

https://www.nowcoder.com/practice/0636c3db0de6437a8a86e58f46aa5c90?tpId=46&&tqId=29166&rp=1&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking

请将给出的整数转化为罗马数字
保证输入数字的范围在1 到 3999之间。

示例1
输入
1
输出
"I"

首先搞清楚罗马数字,然后枚举出符号
I IV V IX X XL L XC C CD D CM M
1 4 5 9 10 40 50 90 100 400 500 900 1000
从后往前逐个比对就可以了

public String intToRoman (int num) {      
    StringBuffer sb = new StringBuffer();         
    int[] s = new int[]{1,4,5,9,10,40,50,90,100,400,500,900,1000};         
    String[] st=new String[]{"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};         
    for(int i =s.length-1;i>=0;){             
        if(num>=s[i]){                 
            sb=sb.append(st[i]);                 
            num-=s[i];             
        }else{                 
            i--;             
        }         
    }         
    return sb.toString();     
}
全部评论

相关推荐

牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务