OJ_1010

来源:互联网 发布:java bigdecimal 累加 编辑:程序博客网 时间:2024/06/05 09:58
#include <iostream>#include <string>using namespace std;string eng[]={"zero","one","two","three","four","five","six","seven","eight","nine","+","="     };int getNum(string s){    for(int i=0;i<12;i++)    {            if(s==eng[i])            return i;    }    return -1;   }void func(){     string in;     while(true){                                 int a,b;                                  cin>>in;                 int temp=getNum(in);                 a=temp;                 cin>>in;                 temp=getNum(in);                 if(temp<10){                            a=a*10+temp;                            cin>>in;                 }                 cin>>in;                 temp=getNum(in);                 b=temp;                 cin>>in;                 temp=getNum(in);                 if(temp<10){                             b=b*10+temp;                             cin>>in;                 }                 if(a==0&&b==0)                               break;                                                   cout<<a+b<<endl;                                                        }}int main(int argc, char *argv[]){//printf("Hello, world\n");func();return 0;}

构造单词对数字的映射,然后转化为数进行计算

题目描述:
读入两个小于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 =
样例输出:
39096

0 0
原创粉丝点击