读入两个小于100的正整数A和B,计算A+B.
需要注意的是:A和B的每一位数字由对应的英文单词给出.
Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.
Output
对每个测试用例输出1行,即A+B的值.
Sample Input
one + two = three four + five six = zero seven + eight nine = zero + zero =
Sample Output
3 90 96
通过string 比较进行转化。cin输入遇到空格就会停止。
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int s1,s2;
string a,b;
int main()
{
while(1){
s1 = 0;
s2 = 0;
while(cin>>a){
if(a[0] =='+')
break;
else if(a =="zero")
s1 = s1*10+0;
else if(a == "one")
s1 = s1*10+1;
else if(a == "two")
s1 = s1*10+2;
else if(a == "three")
s1 = s1*10+3;
else if(a == "four")
s1 = s1*10+4;
else if(a == "five")
s1 = s1*10+5;
else if(a == "six")
s1 = s1*10+6;
else if(a == "seven")
s1 = s1*10+7;
else if(a == "eight")
s1 = s1*10+8;
else if(a == "nine")
s1 = s1*10+9;
}
while(cin>>b){
if(b[0] == '=')
break;
else if(b =="zero")
s2 = s2*10+0;
else if(b == "one")
s2 = s2*10+1;
else if(b == "two")
s2 = s2*10+2;
else if(b == "three")
s2 = s2*10+3;
else if(b == "four")
s2 = s2*10+4;
else if(b == "five")
s2 = s2*10+5;
else if(b == "six")
s2 = s2*10+6;
else if(b == "seven")
s2 = s2*10+7;
else if(b == "eight")
s2 = s2*10+8;
else if(b == "nine")
s2 = s2*10+9;
}
if(s1 == 0&&s2 == 0)
break;
cout<<s1+s2<<endl;
}
}