美文网首页
leetcode题目12: 整数转罗马数字(java)

leetcode题目12: 整数转罗马数字(java)

作者: castlet | 来源:发表于2020-05-25 22:20 被阅读0次

题目描述

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。

字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

示例

输入: 3
输出: "III"

输入: 4
输出: "IV"

输入: 9
输出: "IX"

输入: 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.

输入: 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.

代码

public String intToRoman(int num) {
     int[] values =     {1000, 900,  500, 400, 100,  90,   50,   40,  10,   9,    5,   4,    1};
     String[] romStrs = {"M",  "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

     StringBuilder result = new StringBuilder();

     for (int i = 0; i < values.length && num >= 0; i++) {
         while (num >= values[i]) {
             result.append(romStrs[i]);
             num = num - values[i];
         }
     }
     return result.toString();
 }

相关文章

网友评论

      本文标题:leetcode题目12: 整数转罗马数字(java)

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