輸入格式:A + B =,其中 A、B 由英文單詞組成(zero 到 nine 表示各位數字)。輸出 A+B 的數值。當 A=B=zero 時結束。
讀取單詞序列,遇到 '+' 停止讀第一個數,遇到 '=' 停止讀第二個數。將單詞映射為數字拼成整數,相加輸出。
#include#include #include using namespace std; int wordToDigit(const string& w) { static unordered_map mp = { {"zero",0},{"one",1},{"two",2},{"three",3},{"four",4}, {"five",5},{"six",6},{"seven",7},{"eight",8},{"nine",9} }; return mp[w]; } int main() { string token; while (cin >> token) { int a = 0, b = 0; // 讀第一個數 while (token != "+") { a = a * 10 + wordToDigit(token); cin >> token; } // 讀第二個數 cin >> token; while (token != "=") { b = b * 10 + wordToDigit(token); cin >> token; } if (a == 0 && b == 0) break; cout << a + b << endl; } return 0; }