http://acm.nyist.net/JudgeOnline/problem.php?pid=594
还是A+B
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
输入两个小于100的正整数A和B,输出A+B;A,B均为每位数字对应的英文字母,结果为十进制数。
-
输入
- A,B。 输出
- A+B; 样例输入
-
one + two = one + two zero =
样例输出
-
3 21
#include<iostream>
#include<map>
using namespace std;
int main() {
map<string, int> m;
m["zero"] = 0; m["one"] = 1; m["two"] = 2;
m["three"] = 3; m["four"] = 4; m["five"] = 5;
m["six"] = 6; m["seven"] = 7; m["eight"] = 8;
m["nine"] = 9;
string ch;
while (cin >> ch) { //分段输入 巧解
int a = 0, b = 0;
while (ch != "+") {
a = a * 10 + m[ch];
cin >> ch;
}
cin >> ch;
while (ch != "=") {
b = b * 10 + m[ch];
cin >> ch;
}
cout << a + b << endl;
}
}