A7870.高精度加法
2024-12-31 17:48:27
发布于:江苏
2阅读
0回复
0点赞
直接上函数(这道题主要没说数据范围,但是10000位绝对够了)。
#include<iostream>
#include<cstring>
using namespace std;
string add(string A,string B){
string C="";
int a[10000],b[10000],sum[10001],c[10001],lena=A.length(),lenb=B.length(),i=0,max=(lena>lenb?lena:lenb),x=0,digs=max;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(sum,0,sizeof(c));
for(;i<max;i++){
if(i<lena) a[i]=A[lena-i-1]-'0';
if(i<lenb) b[i]=B[lenb-i-1]-'0';
sum[i]=a[i]+b[i]+x;
x=sum[i]/10;
sum[i]%=10;
}
digs+=x;
if(x){
sum[i]=a[i]+b[i]+x;
x=sum[i]/10;
sum[i]%=10;
}
for(int i=0;i<digs;i++){
c[i]=sum[digs-i-1];
C+=c[i]+'0';
}
return C;
}
int main(){
string A,B;
cin>>A>>B;
cout<<add(A,B);
return 0;
}
这里空空如也
有帮助,赞一个