LeetCode-Integer to Roman

来源:互联网 发布:js正则匹配手机号码 编辑:程序博客网 时间:2024/05/02 00:21
class Solution {public:    string intToRoman(int num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        //了解罗马数字表示方法就能转换了,没太大难度            string strRoman;        int n = num / 1000;        num %= 1000;        for (int i = 0; i < n; ++i)        {            strRoman += "M";        }        n = num / 100;        num %= 100;        strRoman += transDigitToRoman(n, "M", "D", "C");        n = num / 10;        num %= 10;        strRoman += transDigitToRoman(n, "C", "L", "X");        n = num;        strRoman += transDigitToRoman(n, "X", "V", "I");        return strRoman;    }    string transDigitToRoman(int digit, const char *r10, const char *r5, const char *r1)    {        string res;        if (digit == 9)        {            res += r1;            res += r10;        }        else if (digit >= 5)        {            res += r5;            for (int i = 0; i < digit - 5; ++i)            {                res += r1;            }        }        else if (digit == 4)        {            res += r1;            res += r5;        }        else        {            for (int i = 0; i < digit; ++i)            {                res += r1;            }        }        return res;    }};

原创粉丝点击