题目描述
读入两个小于100的正整数A和B,计算A+B.
需要注意的是:A和B的每一位数字由对应的英文单词给出。
题解
简单水题。题目中A和B可以是一位数也可以是两位数。转化的时候,第一个数检测到”+“号停止,第二个数检测”=“号即可。
AC代码
#include <cstdio>
#include <cstring>
using namespace std;
char mp[10][10]={
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine"
};
int getv(char* st){
for(int i = 0; i<10; i++){
if(!strcmp(st, mp[i]))
return i;
}
}
int main(){
char a[3][30],b[3][30];
while(1){
int i,j;
for(i = 0; ;i++){
scanf("%s", a[i]);
if(a[i][0]=='+') break;
}
for(j = 0; ;j++){
scanf("%s", b[j]);
if(b[j][0]=='=') break;
}
if(a[0][0]=='z'&&b[0][0]=='z') return 0;
int va,vb;
if(i == 1) va = getv(a[0]);
else va = 10*getv(a[0])+getv(a[1]);
if(j == 1) vb = getv(b[0]);
else vb = 10*getv(b[0])+getv(b[1]);
printf("%d\n",va+vb);
}
}