LeetCode Integer to Roman

来源:互联网 发布:gis软件开发工程师 编辑:程序博客网 时间:2024/04/30 06:37

问题网址:https://leetcode.com/problems/integer-to-roman/description/

问题描述:
给定一个整数,将其转换为罗马数字。

输入保证在1到3999的范围内。

LeetCode这道问题并没有给出非常明确的输入输出,似乎显得意义不明

下面给出两种简单解法

public static String intToRoman(int num) {    String M[] = {"", "M", "MM", "MMM"};    String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};    String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};    String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};    return M[num/1000] + C[(num%1000)/100] + X[(num%100)/10] + I[num%10];}
public class Solution {    public String intToRoman(int num) {        int[] values = {1000,900,500,400,100,90,50,40,10,9,5,4,1};        String[] strs = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};        StringBuilder sb = new StringBuilder();        for(int i=0;i<values.length;i++) {            while(num >= values[i]) {                num -= values[i];                sb.append(strs[i]);            }        }        return sb.toString();    }}