hdu 1228 A+B 字符串处理 超级大水题

时间:2023-03-10 07:08:20
hdu 1228  A+B 字符串处理 超级大水题

中文意思不解释。

很水,我本来想用switch处理字符串,然后编译不通过。。。原来switch只能处理整数型的啊,我都忘了。

然后就有了很挫的一大串if代码了。。。

代码:

#include <iostream>
#include <string>
using namespace std; int digit(string str) {
if (str == "zero")
return 0;
if (str == "one")
return 1;
if (str == "two")
return 2;
if (str == "three")
return 3;
if (str == "four")
return 4;
if (str == "five")
return 5;
if (str == "six")
return 6;
if (str == "seven")
return 7;
if (str == "eight")
return 8;
if (str == "nine")
return 9;
return -1;
} int getval() {
string tmp;
int s = 0;
while (cin >> tmp && tmp != "+" && tmp != "=") {
s = s * 10 + digit(tmp);
// cout << tmp << endl;
}
return s;
} int main() {
int p1, p2;
while (1) {
p1 = getval();
p2 = getval();
// cout << p1 << " + " << p2 << " = "<< endl;
if (p1 == 0 && p2 == 0)
break;
cout << p1 + p2 << endl;
}//while
return 0;
}