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; 
}


你可能感兴趣的:(ACM)