欢迎访问宙启技术站
智能推送

在Java中编写一个函数来将一个整数转换为罗马数字表示

发布时间:2023-06-29 21:23:52

可以使用switch-case语句来实现将整数转换为罗马数字的函数。

public String intToRoman(int num) {
    StringBuilder roman = 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"};
    
    // 依次对比整数与罗马数字对应的值
    for (int i = 0; i < values.length; i++) {
        while (num >= values[i]) {
            num -= values[i];
            roman.append(symbols[i]);
        }
    }
    
    return roman.toString();
}

运行例子:

public static void main(String[] args) {
    int num = 1994;
    String roman = intToRoman(num);
    System.out.println(roman);  // 输出MCMXCIV
}

这个函数的时间复杂度是 O(1),因为存在一个有限的罗马数字和整数的对应关系。

需要注意的是,这里的函数假设输入的整数范围是1到3999。如果需要处理更大的整数范围,可以扩展values和symbols数组。