Saturday, July 15, 2017

URI problem 1960 solution in C | (Roman Numerals for Page Numbers)

#include<stdio.h>
void rmn(int i);
void rmn1(int n);
int n,i,j;

int main()
{
    int a;
    while(scanf("%d",&n)!=EOF){
        if(n>99){
            a=n/100;
            if(a==4){
                printf("CD");
                n = n-400;
                rmn1(n);
                printf("\n");
                }
            else if(a==9){
                printf("CM");
                n = n-900;
                rmn1(n);
                printf("\n");
                }
            else if(a==1){
                printf("C");
                n = n-100;
                rmn1(n);
                printf("\n");
            }
            else if(a==2){
                printf("CC");
                n = n-200;
                rmn1(n);
                printf("\n");
            }
            else if(a==3){
                printf("CCC");
                n = n-300;
                rmn1(n);
                printf("\n");
            }
            else if(a==5){
                printf("D");
                n = n-500;
                rmn1(n);
                printf("\n");
            }
            else if(a==6){
                printf("DC");
                n = n-600;
                rmn1(n);
                printf("\n");
            }
            else if(a==7){
                printf("DCC");
                n = n-700;
                rmn1(n);
                printf("\n");
            }
            else if(a==8){
                printf("DCCC");
                n = n-800;
                rmn1(n);
                printf("\n");
            }
        }
        else if(n >= 10 && n < 100){
            rmn1(n);
            printf("\n");
        }
        else if(n<10){
            i=n;
            rmn(i);
            printf("\n");
        }

    }

    return 0;
}
void rmn(int i)
{
    if(i==1)printf("I");
    else if(i==2)printf("II");
    else if(i==3)printf("III");
    else if(i==4)printf("IV");
    else if(i==5)printf("V");
    else if(i==6)printf("VI");
    else if(i==7)printf("VII");
    else if(i==8)printf("VIII");
    else if(i==9)printf("IX");
}
void rmn1(int n)
{
    j = n/10;
    if(j==1){
        printf("X");
        i = n-10;
        rmn(i);
    }
    else if(j==2){
        printf("XX");
        i = n-20;
        rmn(i);
    }
    else if(j==3){
        printf("XXX");
        i = n-30;
        rmn(i);
    }
    else if(j==4){
        printf("XL");
        i = n-40;
        rmn(i);
    }
    else if(j==5){
        printf("L");
        i = n - 50;
        rmn(i);
    }
    else if(j==6){
        printf("LX");
        i = n-60;
        rmn(i);
    }
    else if(j==7){
        printf("LXX");
        i = n-70;
        rmn(i);
    }
    else if(j==8){
        printf("LXXX");
        i = n-80;
        rmn(i);
    }
    else if(j==9){
        printf("XC");
        i = n-90;
        rmn(i);
    }
    else if(j==0){
        i=n;
        rmn(i);
    }
}

No comments:

Post a Comment