-
读入两个小于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 <cstdio>
#include <cstring>
using namespace std;
char form[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int char2int (){
int sum=0;
char str[10];
while (scanf("%s",str),strcmp(str,"+")!=0&&strcmp(str,"=")!=0){
sum*=10;
for (int i=0;i<10;i++){
if (strcmp(form[i],str)==0){
sum+=i;
break;
}
}
}
return sum;
}
int main(){
int a,b;
while (true){
a=char2int();
b=char2int();
if (!(a||b)){
break;
}
printf("%d\n",a+b);
}
return true;
}