leetcode 12. Integer to Roman

1.題目

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

將整數(1-3999)轉換成羅馬數字。

2.思路 

只要知道羅馬數字的是怎麼表示的:

1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};

10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};

100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};

1000~3000: {"M", "MM", "MMM"}.

class Solution {
public:
    string intToRoman(int num) {
        string Roman[4][10]={
        {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},  
        {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},  
        {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},  
        {"", "M", "MM", "MMM"}  
    };
    string ans="";
    int digit=0;
    while(num)
    {
        ans=Roman[digit++][num%10]+ans;
        num=num/10;
    }
    return ans;
    }
};





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章