#include <algorithm> #include <iostream> #include <vector> using namespace std; int main() { string a; vector<int> vec; while (cin >> a) { // 注意 while 处理多个 case int flag = 0; int l, r; for (int i = 0; i < a.size(); ++i) { l = a[i] - '0'; r = a[a.size() - i - 1] - '0'; vec.push_back((l + r + flag) % 10); flag = (l + r + flag) / 10; } if (flag > 0) { vec.push_back(flag); } reverse(vec.rbegin(), vec.rend()); for (int it : vec) { cout << it; } cout << endl; } } // 64 位输出请用 printf("%lld")
这道题最大的坑,我认为是,遇到长度过长的整数,所以用字符串的方式处理。