Integer To Roman

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

Your email address will not be published. Required fields are marked *

曠怡亭口占

流轉知何世,江山尚此亭。

登臨皆曠士,喪亂有遺經。

已識乾坤大,猶憐草木青。

長空送鳥印,留幻與人靈。

Featured Posts