Description
键入两个高精度非负整数(不超过230位),求它们的和(精确值)。
Input
数字串1
数字串2
Output
两数之和(并换行回车)
Sample Input
234567891234 143986543788123
Sample Output
144221111679357
KEY:大整数求和
Source:#include<iostream>
#include<cstring>
using namespace std;
char s1[231];
char s2[231];
int a[231];
int b[231];
int c[231];
void add()
...{
int la,lb;
la=strlen(s1);
lb=strlen(s2);
int i,j;
for(i=0,j=230-la+1;i<la;i++)
a[j++]=s1[i]-48;
for(i=0,j=230-lb+1;i<lb;i++)
b[j++]=s2[i]-48;
int time=la;
if(la<lb) time=lb;
for(i=230,j=1;j<=time;i--,j++)
...{
c[i]+=a[i]+b[i];
if(c[i]>=10)
...{
int t;
t=c[i]/10;
c[i]=c[i]%10;
c[i-1]+=t;
}
}
}
void output()
...{
int i=0;
while(c[i]==0) i++;
for(;i<=230;i++)
cout<<c[i];
cout<<endl;
}
int main()
...{
// freopen("fjnu_1743.txt","r",stdin);
cin>>s1;
cin>>s2;
if(!strcmp(s1,"0")&&!strcmp(s2,"0") )
...{
cout<<"0"<<endl;
exit(1);
}
add();
output();
}
![]()