int n;
int a[maxn], b[maxn];
string sum(string str1, string str2){
memset(a, 0, sizeof a);
memset(b, 0, sizeof b);
for(int i = str1.size() - 1, j = 0; i >= 0; --i, ++j)
if(n == 16 && str1[i] >= 'A' && str1[i] <= 'F') a[j] = (str1[i] - 'A') + 10;
else a[j] = str1[i] - 48;
for(int i = str2.size() - 1, j = 0; i >= 0; --i, ++j)
if(n == 16 && str2[i] >= 'A' && str2[i] <= 'F') b[j] = (str2[i] - 'A') + 10;
else b[j] = str2[i] - 48;
for(int i = 0; i < maxn; i++) {
b[i] += a[i];
if(b[i] >= n) {
b[i + 1] += b[i] / n;
b[i] %= n;
}
}
int p = maxn - 1;
while(b[p] == 0 && p > 0) p--;
string t;
for(int i = p; i >= 0; --i) {
if(b[i] >= 10) t += 'A' + (b[i] - 10);
else t += b[i] + '0';
}
return t;
}
N进制加法模板
最新推荐文章于 2022-06-10 21:53:49 发布