题解 | #A + B#
A + B
https://www.nowcoder.com/practice/5fb3548802bb4a13a10c2e53a6fbfdd9
#include <cmath>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;
/*收集处理 “ + ” 前的数 与 “ = ” 前的数
然后对两数相加即可
*/
int main() {
string a;
map<string, int> map;
vector<int> temp;
map["one"] = 1;
map["two"] = 2;
map["three"] = 3;
map["four"] = 4;
map["five"] = 5;
map["six"] = 6 ;
map["seven"] = 7 ;
map["eight"] = 8;
map["nine"] = 9 ;
map["zero"] = 0 ;
int A = 0;
while (cin >> a ) { // 注意 while 处理多个 case
if (a == "+") {
for (int j = temp.size() - 1, i = 0; j >=0 ; j--, i++) {
A += pow(10, i) * temp[j];
temp.pop_back();
}
// cout << A << endl;
temp.push_back(A);
A = 0;
} else if (a == "=") {
for (int j = temp.size() - 1,i=0; j >= 1; j--,i++) {
A += pow(10, i) * temp[j];
temp.pop_back();
}
if(A==0&&temp[0]==0){
return 0;
}
cout << A + temp[0] << endl;
temp.pop_back();
A = 0;
} else if(a==" "){
}else {
temp.push_back(map[a]);
}
}
}
// 64 位输出请用 printf("%lld")
