/*Problem A Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 8 Accepted Submission(s) : 6 Problem Description 读入两个小于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 39096 */ #include<iostream> using namespace std; char s[40]; char temp[11]={'z','o','t','t','f','f','s','s','e','n'}; int myth(int k) { int ans=0; for(int j=0;j<11;j++) { if(s[k]=='t'&&s[k+1]=='w') ans=2; else if(s[k]=='t'&&s[k+1]=='h') ans=3; else if(s[k]=='s'&&s[k+1]=='i') ans=6; else if(s[k]=='s'&&s[k+1]=='e') ans=7; else if(s[k]=='f'&&s[k+1]=='o') ans=4; else if(s[k]=='f'&&s[k+1]=='i') ans=5; else if(temp[j]==s[k]) ans=j; } return ans; } int main() { while(1) { int ans1=0,ans2=0; cin.getline(s,40,'\n'); int i=0; ans1 =myth(i); while(s[i]!=' ') i++; if(s[++i]=='+') { i+=2; ans2=myth(i); } else { ans1=ans1*10+myth(i); while(s[i]!=' ') i++; i=i+3; ans2=myth(i); } if(!ans1&&!ans2) break; while(s[i]!=' ') i++; i++; if(s[i]=='=') printf("%d\n",ans1+ans2); else { ans2=ans2*10+myth(i); printf("%d\n",ans1+ans2); } } return 0; }