【求助】样例不过
查看原帖
【求助】样例不过
586924
封禁用户楼主2022/9/9 13:43
#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
int z;
char x[N],y[N];
struct Node{
	int v[N];
	int len;
};
Node operator +(Node a,Node b){
	int len=max(a.len,b.len);
	for(int i=1;i<=len;++i){
		b.v[i]+=a.v[i];
		if(b.v[i]>=z){
			b.v[i+1]+=b.v[i]/z,b.v[i]%=z;
		}
	}
	int res=b.v[len]/z;
	b.v[len]%=z;
	while(res>0){
		++len;
		b.v[len]+=res/z;
		res%=z;
	}
	b.len=len;
	return b;
}
Node turn(char a[N]){
	int len=strlen(a+1);
	Node ans;
	ans.len=len;
	for(int i=1;i<=len;++i){
		if(a[i]>='0'&&a[i]<='9'){
			ans.v[len-i+1]=a[i]-'0';
		}else{
			ans.v[len-i+1]=a[i]-'A'+10;
		}
	}
	return ans;
}
int main(){
	scanf("%d%s%s",&z,x+1,y+1);
	Node A=turn(x),B=turn(y);
	B=A+B;
	for(int i=B.len;i>=1;--i){
		if(B.v[i]<10){
			printf("%d",B.v[i]);
		}else{
			printf("%c",B.v[i]-10+'A');
		}
	}
	return 0;
}
2022/9/9 13:43
加载中...