24h購物| | PChome| 登入
2009-04-04 12:33:19| 人氣1,039| 回應0 | 上一篇 | 下一篇

羅馬數字

推薦 0 收藏 0 轉貼0 訂閱站台

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
 char x[1000],y[1000];
 while(scanf("%s",x)==1)
  {
   if(x[0]=='#')
    break;
   scanf("%s",y);
   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;
       }
      }
      if(x[a]=='C')
      {
       X+=100;
       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;
        }
       if(a!=0&&x[a-1]=='L')
        {
         X-=100;
        }
       }
      if(x[a]=='D')
      {
       X+=500;
       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;
       }
       if(a!=0&&x[a-1]=='L')
       {
        X-=100;
       }
       if(a!=0&&x[a-1]=='C')
       {
        X-=200;
        }
      }
     if(x[a]=='M')
     {
      X+=1000;
      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;
      }
      if(a!=0&&x[a-1]=='L')
      {
        X-=100;
      }
      if(a!=0&&x[a-1]=='C')
      {
        X-=200;
      }
      if(a!=0&&x[a-1]=='D')
      {
        X-=1000;
      }
     }
    }
    /********************另一個數字****************眼花花防止線*/
    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;
       }
      }
      if(y[a]=='C')
      {
       Y+=100;
       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;
        }
       if(a!=0&&y[a-1]=='L')
        {
         Y-=100;
        }
       }
      if(y[a]=='D')
      {
       Y+=500;
       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;
       }
       if(a!=0&&y[a-1]=='L')
       {
        Y-=100;
       }
       if(a!=0&&y[a-1]=='C')
       {
        Y-=200;
        }
      }
     if(y[a]=='M')
     {
      Y+=1000;
      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;
      }
      if(a!=0&&y[a-1]=='L')
      {
        Y-=100;
      }
      if(a!=0&&y[a-1]=='C')
      {
        Y-=200;
      }
      if(a!=0&&y[a-1]=='D')
      {
        Y-=1000;
      }
     }
    } 
   X=abs(X-Y);
   if(X==0)
    printf("ZERO\n");
   else
    {
     if(X/1000>0)
      {
       if(X/1000==4)
        printf("MMMM");
       if(X/1000==3)
        printf("MMM");
       if(X/1000==2)
        printf("MM");
       if(X/1000==1)
       printf("M");  
       X=X-X/1000*1000;
      }
     if(X/100>0)
      {
       if(X/100==9)
        printf("CM");
       if(X/100==8)
        printf("DCCC");
       if(X/100==7)
        printf("DCC");
       if(X/100==6)
       printf("DC");
       if(X/100==5)
        printf("D");
       if(X/100==4)
        printf("CD");
       if(X/100==3)
        printf("CCC");
       if(X/100==2)
        printf("CC");
       if(X/100==1)
       printf("C");  
       X=X-X/100*100;
      }
     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");
    }
  }
 return 0;
}

台長: 來源不明

您可能對以下文章有興趣

人氣(1,039) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:矩陣的翻轉
此分類上一篇:Hashmat的戰役

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文