您的位置:首页 > 其它

leetcode 12 Integer to Roman

2014-05-06 22:39 393 查看
Given an integer, convert it to a roman numeral.

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

class Solution {
public:
    string intToRoman(int num) {
        string ans;
        int number;
        int i=0;
        char ch[7] ={'I','V','X','L','C','D','M'};
        while(num!=0)
        {
            number=num%10;
            switch(number){
                case 1 :
                case 2 :
                case 3 :
                {
                    ans.insert(0,number,ch[2*i]);
                    break;
                }
                case 4 : 
                {
                    ans.insert(0,1,ch[2*i+1]);
                    ans.insert(0,1,ch[2*i]);
                    break;
                }
                case 5 : 
                {
                    ans.insert(0,1,ch[2*i+1]); 
                    break;
                }
                case 6 :
                case 7 :
                case 8 :
                {
                    ans.insert(0,number-5,ch[2*i]); 
                    ans.insert(0,1,ch[2*i+1]);
                    break; 
                }
                case 9 :
                {
                    ans.insert(0,1,ch[2*i+2]); 
                    ans.insert(0,1,ch[2*i]);
                    break; 
                }
            }
            num=num/10;
            i++;
        }
		return ans;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: