Question:

Solve:
基本上就两个点:英文到数字的映射和格式控制,直接看代码就行
AC Code:
- #include <iostream>
- #include <map>
- #include <cstring>
- using namespace std;
- map<string, int>mp;
- int a, b;
- string s;
- int main(void)
- {
- //map映射
- mp["one"] = 1; mp["two"] = 2;
- mp["three"] = 3; mp["four"] = 4;
- mp["five"] = 5; mp["six"] = 6;
- mp["seven"] = 7; mp["eight"] = 8;
- mp["nine"] = 9; mp["zero"] = 0;
- //循环读入
- while(true)
- {
- a = b = 0;
- //第一个数字
- while(cin >>s){
- if(s == "+") break;
- a = a * 10 + mp[s];
- }
- //第二个数字
- while(cin >>s){
- if(s == "=") break;
- b = b * 10 + mp[s];
- }
- //输出
- if(a == 0 && b == 0) break;
- cout <<a + b <<endl;
- }
- return 0;
- }
图片来自HDU官网,侵删~