美文网首页
java 数字转罗马字母

java 数字转罗马字母

作者: 饱饱想要灵感 | 来源:发表于2023-05-31 18:00 被阅读0次

    思路: 手写2个数组, 一个存整数, 一个存罗马字母, 都从大到小排序, 将输入值从左到右做减法

    public class NumberToRoman {
    /**
     * 数字转罗马字母,规则如下:
     * 1-I,4-IV,5-V,9-IX,10-X,40-XL,50-L,90-XC,100-C,400-CD,500-D,900-CM,1000-M
     * @param num
     * @return
     */
    public String numberToRoman(int num) {
        StringBuilder sb = new StringBuilder();
        int[] values = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
        String[] symbols = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
        int i = 0;
        while(num > 0){
            if(num >= values[i]){
                sb.append(symbols[i]);
                num -= values[i];
            }else{
                i++;
            }
        }
        return sb.toString();
    }
    
    }
    

    相关文章

      网友评论

          本文标题:java 数字转罗马字母

          本文链接:https://www.haomeiwen.com/subject/bsmyedtx.html