Integer to Roman
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) { static const string SYMBOLS=" MDCLXVI"; string ret; int start_divisor = 1000; int iter = 0; while(start_divisor != 0) { // digit separation int quotient = num / start_divisor; num -= quotient * start_divisor; start_divisor /= 10; if (quotient == 9) { ret += SYMBOLS[iter + 2]; ret += SYMBOLS[iter]; } else if (quotient > 5) { ret += SYMBOLS[iter + 1]; ret += string(quotient - 5, SYMBOLS[iter + 2]); } else if (quotient == 5) ret += SYMBOLS[iter + 1]; else if (quotient == 4) { ret += SYMBOLS[iter + 2]; ret += SYMBOLS[iter + 1]; } else if (quotient > 0) ret += string(quotient, SYMBOLS[iter + 2]); iter += 2; } return ret; } };