高精度算法之加法
一、上代码
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int sa[2048]= {0},sb[2048]= {0},sc[2048]= {0},p=0,k=0;
string a,b;
cin>>a>>b;
int la=a.size()-1,lb=b.size()-1;
for(int i=la; i>=0; i--) sa[i]=a[la-i]-48;
for(int i=lb; i>=0; i--) sb[i]=b[lb-i]-48;
for(int i=0; i<=max(la,lb)+1; i++)
{
sc[i]=sa[i]+sb[i]+p;
p=sc[i]/10;
sc[i]%=10;
}
for(int i=2047; i>=0; i--)
{
if(sc[i]==0) k++;
else break;
}
for(int i=2047-k; i>=0; i--) cout<<sc[i];
return 0;
}
2.读入/输出数据
加法结果如下:
12346789123456789123456789 123456789
12346789123456789246913578
--------------------------------
Process exited after 0.6806 seconds with return value 0
请按任意键继续. . .