求取A+B,A,B位数不超1005
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
char str_a[maxn];
char str_b[maxn];
int res[maxn];
int add_BigNum(char *stra, char* strb){
int lena = strlen(stra);
int lenb = strlen(strb);
int count = 0;
int flag = 0; //用于进位
int i = lena-1, j = lenb-1;
for(; i>=0 && j>=0; i--,j--)
{
flag = (stra[i]-'0') + (strb[j]-'0') + flag;
res[count++] = flag % 10;
flag = flag/10;
}
while(i >= 0)
{
flag = (stra[i]-'0') + flag;
res[count++] = flag%10;
flag = flag/10;
--i;
}
while(j >= 0){
flag = (strb[j]-'0') + flag;
res[count++] = flag%10;
flag = flag/10;
--j;
}
if(flag)
res[count++] = flag;
return count;
}
int main()
{
while(~scanf("%s%s",str_a,str_b))
{
memset(res,0,sizeof(res));
int count = add_BigNum(str_a,str_b);
for(int i = count-1; i >= 0; --i){
cout<<res[i];
}
cout<<"\n";
}
return 0;
}