提交时间:2024-08-19 13:37:53

运行 ID: 166331

#include <bits/stdc++.h> using namespace std; string a, b, w; int x[100], y[100], k, N; string add(string a, string b){ for (int i = 0; i <= N - 1; i++) { if (i < 10) w = w + char(48 + i); else w = w + char(55 + i); } while (a.length() < b.length()) a = '0' + a; while (b.length() < a.length()) b = '0' + b; a = '0' + a; b = '0' + b; for (int i = a.length() - 1; i >= 0; i--) { x[i] = w.find(a[i], 0); y[i] = w.find(b[i], 0); } for (int i = a.length() - 1; i >= 0; i--) { x[i] = x[i] + y[i]; if (x[i] >= N) { k = i; while (x[k] >= N) { x[k] = x[k] - N; x[k - 1]++; k--; } } } for (int i = a.length() - 1; i >= 0; i--) a[i] = w[x[i]]; while (a[0] == '0') a.erase(0, 1); return a; } int main() { cin >> N >> a >> b; cout << add(a, b) << endl; return 0; }