#7056: 一樣卡在第14測資!!!


juno_hong (juno)

學校 : 國立臺南女子高級中學
編號 : 17558
來源 : [140.113.136.219]
最後登入時間 :
2016-06-21 10:43:03
a013. 羅馬數字 -- NPSC 模擬試題 | From: [220.130.232.19] | 發表日期 : 2012-10-04 17:36

請求幫忙

#include<iostream>
#include<string.h>
#include<cmath>
using namespace std;
int t(string s);
int main()
{
    string s,o;
    while(cin>>s)
      {
         if(s=="#")
           break;
         else
          {
             int a;
             cin>>o;
             a= t(s)-t(o) ;
             if(a>0);
             else a=0-a;
             int k=-1;
             if(a==0)
               cout<<"ZERO";
             while(a)
               {
                 if(a>=1000)
                    {
                       cout<<"M";
                       a=a-1000;
                    }
         else if(a>=900)
           {
             cout<<"CM";
             a=a-900;
           }
        else if(a>=500)
          {
            cout<<"D";
            a=a-500;
          }   
        else if(a>=400)
           {
             cout<<"CD";
             a=a-400;
           }
       else if(a>=100)
          {
             cout<<"C";
             a=a-100;
          }
       else if(a>=90)
          {
            cout<<"XC";
             a=a-90;
          }
       else if(a>=50)
          {
            cout<<"L";
            a=a-50;
          }
        else if(a>=40)
          { 
            cout<<"XL";
             a=a-40;
          }   
        else if(a>=10)
          {
            cout<<"X";
            a=a-10;
          }
        else if(a>=9)
          {
            cout<<"IX";
            a=a-9;
          }
         else if(a>=5)
          {
            cout<<"V";
            a=a-5;
          } 
        else if(a>=4)
          {
            cout<<"IV";
            a=a-4;
          }
        else
         {
            cout<<"I";
            a--;
         }
    }
      cout<<endl;
          }
      }
    return 0;
}
int t(string s)
{
    int f[100]={0},e,a,l=0;
    for(a=0;a<s.size();a++)
      {
         if(s[a]==73&&s[a+1]==86) l=l-2;     //IV
         if(s[a]==88&&s[a+1]==76) l=l-20;    //XL
         if(s[a]==88&&s[a+1]==67) l=l-20;    //XC
         if(s[a]==67&&s[a+1]==68) l=l-200;   //CD
         if(s[a]==67&&s[a+1]==77) l=l-200;   //CM
         if     (s[a]==73) f[a]=   1;        //I
         else if(s[a]==86) f[a]=   5;        //V  
         else if(s[a]==88) f[a]=  10;        //X
         else if(s[a]==76) f[a]=  50;        //L
         else if(s[a]==67) f[a]= 100;        //C          
         else if(s[a]==68) f[a]= 500;        //D         
         else              f[a]=1000;        //M
 
      }
    e=0;
    while(a--)
      e=e+f[a];
    return e+l;
}

 
#7057: Re:一樣卡在第14測資!!!


juno_hong (juno)

學校 : 國立臺南女子高級中學
編號 : 17558
來源 : [140.113.136.219]
最後登入時間 :
2016-06-21 10:43:03
a013. 羅馬數字 -- NPSC 模擬試題 | From: [111.255.235.215] | 發表日期 : 2012-10-04 21:46

原來是IX忘了加

    找到了

    謝謝幫忙者 

 
ZeroJudge Forum