-
题目描述:
-
读入两个小于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
-
答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7734-1-1.html
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a,b;
int s1=0,s2=0,s;
loop:while(cin>>a)
{
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;
else if(a=="+")
break;
}
while(cin>>b)
{
if(b=="zero" && s2 ==0 && s1==0)
return 0;
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;
else if(b=="=")
break;
}
s=s1+s2;
if(s!=0)
{
cout<<s<<endl;
s=0;
s1=0;
s2=0;
goto loop;
}
else
return 0;
return 0;
}
/**************************************************************
Problem: 1010
User: vhreal
Language: C++
Result: Accepted
Time:10 ms
Memory:1520 kb
****************************************************************/