Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
166331 | C班-范浩宇 | 进制数加法 | C++ | 解答错误 | 83 | 1 MS | 248 KB | 881 | 2024-08-19 13:37:53 |
#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; }