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) {
string ans;
int number;
int i=0;
char ch[7] ={'I','V','X','L','C','D','M'};
while(num!=0)
{
number=num%10;
switch(number){
case 1 :
case 2 :
case 3 :
{
ans.insert(0,number,ch[2*i]);
break;
}
case 4 :
{
ans.insert(0,1,ch[2*i+1]);
ans.insert(0,1,ch[2*i]);
break;
}
case 5 :
{
ans.insert(0,1,ch[2*i+1]);
break;
}
case 6 :
case 7 :
case 8 :
{
ans.insert(0,number-5,ch[2*i]);
ans.insert(0,1,ch[2*i+1]);
break;
}
case 9 :
{
ans.insert(0,1,ch[2*i+2]);
ans.insert(0,1,ch[2*i]);
break;
}
}
num=num/10;
i++;
}
return ans;
}
};