#include using namespace std; ifstream in("test.in"); ofstream out("test.out"); void solveLine() { int64_t val; in >> val; int digits = log10(val) + 1; if (digits == 1) { out << val << endl; } cout << "running for " << val << endl; for (int i = 0; i < digits / 2; i++) { // pow needs to be converted from double to int before division to avoid floating-point division bs int64_t targetPower = pow(10, digits - i - 1); int64_t left = val / targetPower; left = left % 10; targetPower = pow(10, i); int64_t right = val / targetPower; right = right % 10; cout << "i: " << i << " left: " << left << " right: " << right << endl; if (left > right) { cout << "Adding " << (left - right) * pow(10, i) << endl; val += (int)((left - right) * pow(10, i)); } else if (left < right) { cout << "Adding " << ((10 - right) + left) * pow(10, i) << endl; val += (int)(((10 - right) + left) * pow(10, i)); } cout << val << endl; } out << val << endl; } int main() { if (!in) { cerr << "Error opening file" << endl; return 1; } int n; in >> n; cout << "n: " << n << endl; for (int i = 0; i < n; i++) { solveLine(); } // solveLine(); return 0; }