594-还是A+B
题目来源:http://acm.nyist.cf/problem/594
题目描述:
输入两个小于100的正整数A和B,输出A+B;
A,B均为每位数字对应的英文字母,结果为十进制数。
输入描述:
A,B。
输出描述:
A+B;
样例输出:
one + two = one + two zero =
样例输出:
3
21
#include<bits/stdc++.h>
using namespace std;
string a[]= {"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
map<string,int> num;
for(int i=0; i<10; i++)
num[a[i]]=i;
char a[105],b[105];
while(~scanf("%s%s",a,b))
{
int x,y;
x=num[a];
if(b[0]!='+')
{
x=x*10+num[b];
scanf("%s",a);
}
scanf("%s%s",a,b);
y=num[a];
if(b[0]!='=')
{
y=y*10+num[b];
scanf("%s",a);
}
printf("%d\n",x+y);
}
return 0;
}