50pts求调 壶关
2026-06-01 13:00:48
发布于:广东
好心入帮我看看错哪了 DeepSeek Kimi 豆包 ChatGPT 元宝 AC助手全都找不出问题
#include <bits/stdc++.h>
#include <cctype>
using namespace std;
const int MAXN = 2e3 + 5;
int r, a[MAXN], b[MAXN], c[MAXN];
inline void read(int a[]) {
string s;
cin >> s;
a[0] = s.size();
for (int i = 0; i < a[0]; i++) {
if (isalpha(s[i])) {
a[a[0] - i] = s[i] - 'A' + 10;
} else {
a[a[0] - i] = s[i] - '0';
}
}
}
inline void add(int a[], int b[], int c[]) {
c[0] = max(a[0], b[0]);
for (int i = 1; i <= c[0]; i++) {
c[i] += a[i] + b[i];
if (c[i] >= r) {
c[i + 1]++;
c[i] -= r;
}
}
if (c[c[0] + 1] > 0) {
c[0]++;
}
}
inline void print(int a[]) {
for (int i = a[0]; i >= 1; i--) {
if (a[i] >= 10) {
cout << a[i] - 10 + 'A';
} else {
cout << a[i];
}
// cout << a[i];
}
cout << endl;
}
int main() {
memset(c, 0, sizeof(c));
cin >> r;
read(a); read(b);
add(a, b, c);
print(c);
return 0;
}
全部评论 2
#include <bits/stdc++.h>
#include <cctype>
using namespace std;
const int MAXN = 2e3 + 5;
int r, a[MAXN], b[MAXN], c[MAXN];#include <bits/stdc++.h>
using namespace std;char a[4000],b[4000],c[4000];
int n;
char num[36]={
'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z'
};3天前 来自 黑龙江
1#include <bits/stdc++.h>
using namespace std;char a[4000],b[4000],c[4000];
int n;
char num[36]={
'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z'
};int bj(char char1,char char2,int d)//B进制相加,得出结果,注意结果是整数类型
{
int n1,n2;
if('0'<=char1 and char1 <= '9')
{
n1 = char1 - '0';
}
else if ('A'<=char1 and char1 <= 'Z'){
n1 = char1 - 'A' + 10;
}
else{
n1 = 0;
}
if('0'<=char2 and char2 <= '9')
{
n2 = char2 - '0';
}
else if ('A'<=char2 and char2 <= 'Z'){
n2 = char2 - 'A' + 10;
}
else{
n2 = 0;
}
return n1+n2+d;
}string adds(string s1,string s2)
{
for(int i=0;i<s1.length();i++)
{
a[i] = s1[s1.length()-1-i];
}
for(int i=0;i<s2.length();i++)
{
b[i] = s2[s2.length()-1-i];
}
int d=0;
int lang = max(s1.length(),s2.length());
for (int i=0;i<lang ;i++)
{
int q=bj(a[i],b[i],d);
if(q>=n)
{
d=1;
}
else
{d=0;}
c[i]=num[q%n];
}
if(d!=0){
c[lang]=num[d];
}
else{
lang--;
}
string s3="";
int i=lang;
for(;c[i]=='0';i--);for(;i>=0;i--) s3+=c[i]; return s3;}
int main()
{
cin>>n;
string m1,m2;
cin>>m1>>m2;
cout<<adds(m1,m2);return 0;}
3天前 来自 黑龙江
1









有帮助,赞一个