POJ 2572 - Hard to Believe, but True!

http://poj.org/problem?id=2572

概要

\(a + b = c\) という等式が \(a, b, c\) それぞれ十進数で逆向きに書かれた形で与えられるので、それを戻したときに正しいかどうかを答える。

制約

解法

やるだけ。

 1 #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 }
poj/2572.cc