• POJ 2685


      1 #include <iostream>
      2 #include <string>
      3 #define MAXN 26
      4 
      5 using namespace std;
      6 
      7 int _map[MAXN];
      8 
      9 string fun(int sum);
     10 
     11 int main()
     12 {
     13     //freopen("acm.acm","r",stdin);
     14     int test;
     15     int i;
     16     string s_1;
     17     string s_2;
     18     int sum_1;
     19     int sum_2;
     20     int sum;
     21     _map['m'-'a'] = 1000;
     22     _map['c'-'a'] = 100;
     23     _map['x'-'a'] = 10;
     24     _map['i'-'a'] = 1;
     25     cin>>test;
     26     while(test --)
     27     {
     28         cin>>s_1>>s_2;
     29         sum_1 = 0;
     30         sum_2 = 0;
     31         for(i = 0; i < s_1.length(); ++ i)
     32         {
     33             
     34             if(s_1[i] >= '2' && s_1[i] <= '9')
     35             {
     36                 ++ i;
     37                 sum_1 += (s_1[i-1]-'0')*_map[s_1[i]-'a'];
     38             }
     39             else
     40             {
     41                 sum_1 += _map[s_1[i]-'a'];
     42             }
     43         }
     44         for(i = 0; i < s_2.length(); ++ i)
     45         {
     46             if(s_2[i] >= '2' && s_2[i] <= '9')
     47             {
     48                 ++ i;
     49                 sum_2 += (s_2[i-1]-'0')*_map[s_2[i]-'a'];
     50             }
     51             else
     52             {
     53                 sum_2 += _map[s_2[i]-'a'];
     54             }
     55         }
     56         //cout<<sum_1<<" "<<sum_2<<endl;
     57         sum = sum_1 + sum_2;
     58         cout<<fun(sum)<<endl;
     59     }
     60 }
     61 
     62 string fun(int sum)
     63 {
     64     string s;
     65     int num_m;
     66     int num_c;
     67     int num_x;
     68     int num_i;
     69     num_m = sum/1000;
     70     sum %= 1000;
     71     num_c = sum/100;
     72     sum %= 100;
     73     num_x = sum/10;
     74     sum %= 10;
     75     num_i = sum;
     76     if(num_m != 0)
     77     {
     78         if(num_m == 1)
     79         {
     80             s += 'm';
     81         }
     82         else
     83         {
     84             s += char(num_m + '0');
     85             s += 'm';
     86         }
     87     }
     88     if(num_c != 0)
     89     {
     90         if(num_c == 1)
     91         {
     92             s += 'c';
     93         }
     94         else
     95         {
     96             s += char(num_c + '0');
     97             s += 'c';
     98         }
     99     }
    100 
    101     if(num_x != 0)
    102     {
    103         if(num_x == 1)
    104         {
    105             s += 'x';
    106         }
    107         else
    108         {
    109             s += char(num_x + '0');
    110             s += 'x';
    111         }
    112     }
    113 
    114     if(num_i != 0)
    115     {
    116         if(num_i == 1)
    117         {
    118             s += 'i';
    119         }
    120         else
    121         {
    122             s += char('0' + num_i);
    123             s += 'i';
    124         }
    125     }
    126     return s;
    127 }
  • 相关阅读:
    JavaScript面向对象之闭包的理解
    JavaScript面向对象之函数构造器的理解
    记录jq控制select 选中状态
    JavaScript面向对象之创建类和方法
    获取对象属相 点运算符 和方括号 运算符
    parseFloat 和 Number isNaN 转换
    Js数据类型和运算符
    break , continue 和 标签 跳出循环
    javaScript--循环语句
    三元运算符
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4568638.html
Copyright © 2020-2023  润新知