题目:整数转罗马数字
题解:范围限定在0-3999,硬编码就好- -懒得想逻辑了
class Solution { public: string intToRoman(int num) { int a = num / 1000; int b = (num / 100) % 10; int c = (num / 10) % 10; int d = num % 10; string ans; for (int i = 0; i < a; ++i)ans = ans + "M"; if (b == 9)ans = ans + "CM"; else if (b == 8)ans = ans + "DCCC"; else if (b == 7)ans = ans + "DCC"; else if (b == 6)ans = ans + "DC"; else if (b == 5)ans = ans + "D"; else if (b == 4)ans = ans + "CD"; else if (b == 3)ans = ans + "CCC"; else if (b == 2)ans = ans + "CC"; else if (b == 1)ans = ans + "C"; if (c == 9)ans = ans + "XC"; else if (c == 8)ans = ans + "LXXX"; else if (c == 7)ans = ans + "LXX"; else if (c == 6)ans = ans + "LX"; else if (c == 5)ans = ans + "L"; else if (c == 4)ans = ans + "XL"; else if (c == 3)ans = ans + "XXX"; else if (c == 2)ans = ans + "XX"; else if (c == 1)ans = ans + "X"; if (d == 9)ans = ans + "IX"; else if (d == 8)ans = ans + "VIII"; else if (d == 7)ans = ans + "VII"; else if (d == 6)ans = ans + "VI"; else if (d == 5)ans = ans + "V"; else if (d == 4)ans = ans + "IV"; else if (d == 3)ans = ans + "III"; else if (d == 2)ans = ans + "II"; else if (d == 1)ans = ans + "I"; return ans; } };