题解 高精度B进制加法
2025-05-10 17:20:28
发布于:北京
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[2005],b[2005],c[2005];
int main(){
int n;
cin>>n;
string s1,s2;
cin>>s1>>s2;
int l1=s1.size(),l2=s2.size();
int len1=0,len2=0;
for(int i=l1-1;i>=0;i--){
if(s1[i]>='0'&&s1[i]<='9'){
a[len1++]=s1[i]-'0';
}
else{
a[len1++]=s1[i]-'A'+10;
}
}
for(int i=l2-1;i>=0;i--){
if(s2[i]>='0'&&s2[i]<='9'){
b[len2++]=s2[i]-'0';
}
else{
b[len2++]=s2[i]-'A'+10;
}
}
for(int i=0;i<=max(len1,len2)-1;i++){
c[i]+=a[i]+b[i];
if(c[i]>=n){
c[i]-=n;
c[i+1]+=1;
}
}
int len=max(len1,len2)-1;
if(c[len+1]){
len++;
}
for(int i=len;i>=0;i--){
if(c[i]>=10){
cout<<char(c[i]-10+'A');
}
else{
cout<<c[i];
}
}
}
高进度算法
这里空空如也
有帮助,赞一个