POJ 2572 - Hard to Believe, but True!
http://poj.org/problem?id=2572
概要
\(a + b = c\) という等式が \(a, b, c\) それぞれ十進数で逆向きに書かれた形で与えられるので、それを戻したときに正しいかどうかを答える。
制約
- \(0 \le a, b, c < 10 ^ 7\)
解法
やるだけ。
poj/2572.cc1 #include <iostream> 2 #include <sstream> 3 #include <algorithm> 4 using namespace std; 5 6 int f(const string& s) 7 { 8 int n = 0; 9 for (string::const_reverse_iterator it = s.rbegin(); it != s.rend(); ++it) { 10 n = 10*n + (*it - '0'); 11 } 12 return n; 13 } 14 15 int main() 16 { 17 for (string s; getline(cin, s);) { 18 replace(s.begin(), s.end(), '+', ' '); 19 replace(s.begin(), s.end(), '=', ' '); 20 istringstream iss(s); 21 string a, b, c; 22 iss >> a >> b >> c; 23 cout << (f(a) + f(b) == f(c) ? "True" : "False") << endl; 24 } 25 return 0; 26 }