char result[50]={0};
char * intToRoman(int num){
char t,h,ten,set,i=0;
memset(result,0,50);
char *tmp=result;
set=num%10;
num/=10;
ten=num%10;
num/=10;
h=num%10;
num/=10;
t=num%10;
num/=10;
while(i<t) {*tmp='M';i++;tmp++;};
i=0;
if(h>=5&&h<9)
{
*tmp++='D';
while(h-5>0) {*tmp++='C';h--;};
}
else if(h>0&&h<4)
{
while(h>0)
{
*tmp++='C';
h--;
}
}
else if(h==4)
{
*tmp++='C';
*tmp++='D';
}
else if (h==9)
{
*tmp++='C';
*tmp++='M';
}
if(ten>=5&&ten <9)
{
*tmp++='L';
while(ten-5>0) {*tmp++='X';ten--;};
}
else if(ten>0&&ten<4)
{
while(ten>0)
{
*tmp++='X';
ten--;
}
}
else if(ten==9) {*tmp++='X';*tmp++='C';}
else if(ten==4){*tmp++='X',*tmp++='L';}
if(set>=5&&set<9)
{
*tmp++='V';
while(set-5>0)
{
*tmp++='I';
set --;
}
}
else if (set>0&&set<4)
{
while(set>0)
{
*tmp++='I';
set--;
}
}
else if(set==4)
{
*tmp++='I';
*tmp++='V';
}
else if (set==9)
{
*tmp++='I';
*tmp++='X';
}
return result;
}
Leave a Reply