60分 求助!!!
查看原帖
60分 求助!!!
1058217
wangyuzhe11楼主2024/9/6 11:24

大佬们,我哪里错了

#include<bits/stdc++.h>
using namespace std;
#define db=double;
int kk;
string a,b;
void add(string a,string b){
	int s1=a.size(),s2=b.size();
	string k="";
	int l=0;
	if(s2>=s1){
		for(int i=s1-1;i>=0;i--){
			int m1,m2;
			if(a[i]>='0'&&a[i]<='9')m1=a[i]-'0';
			else m1=a[i]-'A'+10;
			if(b[i-(s1-s2)]>='0'&&b[i-(s1-s2)]<='9')m2=b[i-(s1-s2)]-'0';
			else m2=b[i-(s1-s2)]-'A'+10;
			int x=m1+m2+l;
			if(x<kk){
				l=0;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x+'A'-10)+k;
			}else{
				l=x/kk;
				x%=kk;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x+'A'-10)+k;
			}
		}
		for(int i=s2-s1-1;i>=0;i--){
			int m; 
			if(b[i]>='0'&&b[i]<='9')m=b[i]-'0';
			else m=b[i]-'A'+10;
			int x=m+l;
			if(x<kk){
				l=0;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x+'A'-10)+k;
			}else{
				l=x/kk;
				if(kk<=10)k=(char)((x%kk)+'0')+k;
				else k=(char)((x%kk)+'0')+k;
			}
		}
		if(l>0)k=char(l+'0')+k;
	}
	else{
		for(int i=s2-1;i>=0;i--){
			int m1,m2;
			if(a[i-(s2-s1)]>='0'&&a[i-(s2-s1)]<='9')m1=a[i-(s2-s1)]-'0';
			else m1=a[i-(s2-s1)]-'A'+10;
			if(b[i]>='0'&&b[i]<='9') m2=b[i]-'0';
			else m2=b[i]-'A'+10;
			int x=m1+m2+l;
			if(x<kk){
				l=0;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x-10+'A')+k;
			}else{
				l=x/kk;
				x%=kk;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x-10+'A')+k;
			}
		}
		for(int i=s1-s2-1;i>=0;i--){
			int m;
			if(a[i]>='0'&&a[i]<='9')m=a[i]-'0';
			else m=a[i]-'A'+10;
			int x=m+l;
			if(x<kk){
				l=0;
				if(kk<=10)k=(char)(x+'0')+k;
				else k=(char)(x-10+'A')+k;
			}else{
				l=x/kk;
				if(kk<=10)k=(char)((x%kk)+'0')+k;
				else k=(char)((x%kk)-10+'A')+k;
			}
		}
		if(l==1)k='1'+k;
	}
	for(int i=0;i<k.size();i++)cout<<k[i];
}
int main(){
	cin>>kk>>a>>b;
	add(a,b);
	return 0;
}
2024/9/6 11:24
加载中...