大数加法(Eoj——1001)
#include <iostream>
#include <cstring>
using namespace std;
int main(){
while(1){
char n1[501],n2[501],n11[501],n22[501],result[505],s=0;
if(!(cin>>n1>>n2)) break;
int a1=strlen(n1),a2=strlen(n2);
strcpy(n11,n1);
strcpy(n22,n2);
for(int i=0,j=a1-1;n11[i]!='\0';i++,j--){
n1[i]=n11[j];
}
for(int i=0,j=a2-1;n22[i]!='\0';i++,j--){
n2[i]=n22[j];
}
int max=a1>a2?a1:a2;
memset(n1+a1,'0',sizeof(n1)-a1);
memset(n2+a2,'0',sizeof(n2)-a2);
int w=0;
for(w=0;w<max;w++){
if(n1[w]+n2[w]+s-'0'>'9'){
result[w]=s+n1[w]+n2[w]-'9'-1;
s=1;
}else{
result[w]=s+n1[w]+n2[w]-'0';
s=0;
}
}
if(s==1){
result[w]='1';
for(w;w>=0;w--){
cout<<result[w];
}
}else{
for(w-=1;w>=0;w--){
cout<<result[w];
}
}
cout<<endl;
}
return 0;
}