Given an integer, convert it to roman.
Input is guaranteed to be within the range from 1 to 3999.
class Solution {
public:
string intToRoman(int num) {
char symbol[]={'I','V','X','L','C','D','M'};
int scale=1000;
string result;
for(size_t i=6;i>=0;i-=2){
int digit=num/scale;
if(digit != 0){
if(digit < 4) result.append(digit,symbol[i]);
else if(digit == 4) result.append(1,symbol[i]),result.append(1,symbol[i+1]);
else if(digit == 5) result.append(1,symbol[i+1]);
else if(digit<9) result.append(1,symbol[i+1]),result.append(digit-5,symbol[i]);
else result.append(1,symbol[i]),result.append(1,symbol[i+2]);
}
num=num%scale;
scale/=10;
if(scale == 0) break;
}
return result;
}
};