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

Tests(5/6):


#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; }


测评信息: