有人帮我看看,哪里有问题?
  • 板块P1604 B进制星球
  • 楼主3_14
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/13 22:01
  • 上次更新2024/3/14 12:47:32
查看原帖
有人帮我看看,哪里有问题?
913288
3_14楼主2024/3/13 22:01
#include<bits/stdc++.h>
using namespace std;
const int MAX=1e4+1;
int b;
string n1,n2,ans;
void print(int z,string a,string b){
	int len1=a.size(),len2=b.size();
	if(len2>len1)
		print(z,b,a);
	vector<int> n1(len1+3);
	vector<int> n2(len2+3);
	vector<int> ans(len1+11);
	for(int i=0;i<len1;i++){
		if('A'<=a[i]&&a[i]<='Z'){
			n1[i]=a[len1-1-i]-55;
		}else{
			n1[i]=a[len1-1-i]-'0';
		}
	}
	for(int i=0;i<len2;i++){
		if('A'<=b[i]&&b[i]<='Z'){
			n2[i]=b[len2-1-i]-55;
		}else{
			n2[i]=b[len2-1-i]-'0';
		}
	}
	int k=0;
	for(int i=0;i<len1;i++){
		ans[i]=n1[i]+n2[i]+k;
		k=0;
		if(ans[i]>=z){
			ans[i]%=z;
			k=1;
		}
	}
	if(k)
		cout<<k;
	for(int i=len1-1;i>=0;i--){
		if(ans[i]>9){
			cout<<char(ans[i]+55);
		}else{
			cout<<ans[i];
		}
	}
	cout<<'\n';
}
int main(){
	cin>>b>>n1>>n2;
	print(b,n1,n2);
	return 0;
}
2024/3/13 22:01
加载中...