题目描述
读入两个小于100的正整数A和B,计算A+B.
需要注意的是:A和B的每一位数字由对应的英文单词给出.
输入
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B=",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.
输出
样例输入
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
样例输出
#include<iostream>
#include<string>
#define POWER 10;
using namespace std;
enum num
{
zero,one,two,three,four,five,six,seven,eight,nine,ten
};
char flag = 'A';
int string_to_int(string str);
int main()
{
int A=0;
int B=0;
string str;
while(cin>>str)
{
if(flag == 'A')
{
A+=string_to_int(str);
while(cin>>str)
{
if(str!= "+")
{
A= A * POWER ;
A+=string_to_int(str);
}
else
{
flag= 'B';
break;
}
}
}
else
{
B +=string_to_int(str);
while(cin>>str)
{
if(str!= "=" && str != "+")
{
B= B * POWER ;
B+= string_to_int(str);
}
elseif(str =="=")
{
flag= 'A';
break;
}
}
cout<<A+B<<endl;
}
if(A ==0&& B == 0)
break;
else if(flag == 'A')
A = B=0;
}
return 0;
}
int string_to_int(string str)
{
if(str =="zero")
return zero;
else if(str == "one")
return one;
else if(str == "two")
return two;
else if(str == "three")
return three;
else if(str == "four")
return four;
else if(str =="five")
return five;
else if(str =="six")
return six;
else if(str == "seven")
return seven;
else if(str == "eight")
return eight;
else if(str == "nine")
return nine;
else if(str == "ten")
return ten;
else
return -1;
}