美文网首页
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