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; }};