#include<vector> #include<string> #include<iostream> using namespace std; int convert2value(string str) { if (str.compare("one") == 0) return 1; else if (str.compare("two") == 0) return 2; else if (str.compare("three") == 0) return 3; else if (str.compare("four") == 0) return 4; else if (str.compare("five") == 0) return 5; else if (str.compare("six") == 0) return 6; else if (str.compare("seven") == 0) return 7; else if (str.compare("eight") == 0) return 8; else if (str.compare("nine") == 0) return 9; else if (str.compare("zero") == 0) return 0; else { int result = 0; for (int i = 0; i < str.length(); i++) { result *= 10; result += str[i] - '0'; } return result; } } string value2string(int value) { string result = ""; while (value) { int t = value % 10; string temp; switch (t) { case 0: temp = "zero"; break; case 1: temp = "one"; break; case 2: temp = "two"; break; case 3: temp = "three"; break; case 4: temp = "four"; break; case 5: temp = "five"; break; case 6: temp = "six"; break; case 7: temp = "seven"; break; case 8: temp = "eight"; break; case 9: temp = "nine"; break; } if (result.compare("") == 0) result = temp; else result = temp + " " + result; value /= 10; } return result; } int main() { int T; cin >> T; for (int i = 0; i < T; i++) { int type; cin >> type; int s1 = 0, s2 = 0, flag = 0; while (1) { string str; cin >> str; if (str.compare("+")==0) flag = 1; //第一个因子已经读入 else if (str.compare("=")==0) { //算结果 if (type == 0) //出整数 cout << s1 + s2 <<endl; else //出英文 cout << value2string(s1 + s2) << endl; break; } else { //读入的是因子 if (flag == 0) { s1 *= 10; s1 += convert2value(str); } else { s2 *= 10; s2 += convert2value(str); } } } } return 0; } |
Double click to view unformatted code.