2009-06-07 22:39:16來源不明

94北縣賽-3-羅馬數字 (Roman)

作法:暴力.

 

/*********************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void make(int X)
{
      if(X/10>0)
      {
       if(X/10==9)
        printf("XC");
       if(X/10==8)
        printf("LXXX");
       if(X/10==7)
        printf("LXX");
       if(X/10==6)
       printf("LX");
       if(X/10==5)
        printf("L");
       if(X/10==4)
        printf("XL");
       if(X/10==3)
        printf("XXX");
       if(X/10==2)
        printf("XX");
       if(X/10==1)
       printf("X");  
       X=X-X/10*10;
      }
     if(X>0)
      {
       if(X==9)
        printf("IX");
       if(X==8)
        printf("VIII");
       if(X==7)
        printf("VII");
       if(X==6)
       printf("VI");
       if(X==5)
        printf("V");
       if(X==4)
        printf("IV");
       if(X==3)
        printf("III");
       if(X==2)
        printf("II");
       if(X==1)
       printf("I");  
      } 
      printf("\n");
}
main()
{
 char x[1000],y[1000];
 while(scanf("%s %s",x,y)==2)
  {
   int X=0,a,b,Y=0;
   for(a=0;a<strlen(x);a++)
    {
     if(x[a]=='I')
       X+=1;
     if(x[a]=='V')
      {
       X+=5;
       if(a!=0&&x[a-1]=='I')
        X-=2;
      }
      if(x[a]=='X')
      {
         X+=10;
       if(a!=0&&x[a-1]=='I')
         X-=2;
       if(a!=0&&x[a-1]=='V')
         X-=10;
      }
      if(x[a]=='L')
      {
        X+=50;
       if(a!=0&&x[a-1]=='I')
        X-=2;
       if(a!=0&&x[a-1]=='V')
        X-=10;
       if(a!=0&&x[a-1]=='X')
        X-=20;
      }
    }
    /********************另一個數字****************眼花花防止線*/
    for(a=0;a<strlen(y);a++)
    {
     if(y[a]=='I')
       Y+=1;
     if(y[a]=='V')
      {
       Y+=5;
       if(a!=0&&y[a-1]=='I')
       {
        Y-=2;
       }
      }
      if(y[a]=='X')
      {
       Y+=10;
        if(a!=0&&y[a-1]=='I')
         Y-=2;
       if(a!=0&&y[a-1]=='V')
         Y-=10;
      }
      if(y[a]=='L')
      {
        Y+=50;
       if(a!=0&&y[a-1]=='I')
        Y-=2;
       if(a!=0&&y[a-1]=='V')
        Y-=10;
       if(a!=0&&y[a-1]=='X')
        Y-=20;
      }
    } 
    X=X+7+(Y+30)/60;
    make(X%24);
    make((Y+30)%60);
  }
 return 0;
}