Skip to content

Latest commit

 

History

History
99 lines (96 loc) · 2.23 KB

Integer to Roman.md

File metadata and controls

99 lines (96 loc) · 2.23 KB

#Integer to Roman ##Problem: Given an integer, convert it to a roman numeral.

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

class Solution {
public:
    string intToRoman(int num) {
        string roman;
        while(num)
        {
            if(num>=1000)
            {
                roman += 'M';
                num -= 1000;
            }
            else if(num>=900)
            {
                roman += "CM";
                num -= 900;
                
            }
            else if(num>=500)
            {
                roman += 'D';
                num -= 500;
            }
            else if(num>=400)
            {
                roman += "CD";
                num -= 400;
            }
            else if(num>=100)
            {
                roman += 'C';
                num -= 100;
            }
            else if(num>=90)
            {
                roman += "XC";
                num -= 90;
            }
            else if(num>=50)
            {
                roman += 'L';
                num -= 50;
            }
            else if(num>=40)
            {
                roman += "XL";
                num -= 40;
            }
            else if(num>=10)
            {
                roman += 'X';
                num -= 10;
            }
            else if(num>=9)
            {
                roman += "IX";
                num -= 9;
            }
            else if(num>=5)
            {
                roman += 'V';
                num -= 5;
            }
            else if(num>=4)
            {
                roman += "IV";
                num -= 4;
            }
            else
            {
                roman += 'I';
                num -= 1;
            }
            
        }
        return roman;
    }
};

##To Study: 用数组将各位上的数字与罗马数字对应

class Solution {
public:
    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)];
    }
};