Fork me on GitHub

one + two = 3

读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。

输入

测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。

输出

对每个测试用例输出1行,即A+B的值。

样例输入

one + two =
three four + five six =
zero seven + eight nine =
zero + zero =

样例输出

3
90
96
#include <iostream>
 #include <string>
 #include <sstream>
 using namespace std;

int to(string str){
           if(str=="one") return 1;
           else if(str=="two") return 2;
           else  if(str=="three") return 3;
           else  if(str=="four") return 4;
           else  if(str=="five") return 5;
           else if(str=="six") return 6;
           else if(str=="seven") return 7;
           else if(str=="eight") return 8;
           else  if(str=="nine") return 9;
           else if(str=="zero") return 0;
     else return 0;
 }
 int main()
 {
   string a,b,c,d,e;
   int m,n;
   string s;
   while(getline(cin,s))
   {
       stringstream sin(s);
    sin>>a>>b;
    if(b=="+")
    {
     m=to(a);
    }
    else
    {
    m=to(a)*10+to(b);
    sin>>b;
    }
    sin>>c>>d;
    if(d=="=")
     n=to(c);
    else {
   
      n=to(c) * 10 + to(d);
    }
    if(n == 0&&m == 0) break;
    cout<<m+n<<endl;
  
  
   }
 return 0;
}

 

posted @ 2018-10-23 18:45  Lazy.Cat  阅读(515)  评论(0编辑  收藏  举报