注解
1、用STL的队列,第一次读到+,然后把第一个数变成数字,第二次读到=,然后把第二个数字变成数字。之后两数相加即可。
代码
#include <iostream>
#include <queue>
using namespace std;
const int LEN = 10;
string str[] = {"zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine"
};
queue<string> st;
int stringToInt() {
int a = 0;
while(st.size()>0) {
string top = st.front();
for(int i=0; i<LEN; i++) {
if(top.compare(str[i])==0) {
a = a*10 + i;
}
}
st.pop();
}
return a;
}
int main() {
string s;
while(cin>>s) {
while(s.compare("+")) {
st.push(s);
cin>>s;
}
int a = stringToInt();
cin>>s;
while(s.compare("=")) {
st.push(s);
cin>>s;
}
int b = stringToInt();
if(!a && !b) {
break;
} else {
cout<<a+b<<endl;
}
}
return 0;
}