帮忙看下这个大位数运算问题

来源:百度知道 编辑:UC知道 时间:2024/05/04 12:14:03
输入
输入将包含一系列的整数对a和b,用空格分开,一行一对。

输出
每行一个a+b的和。

数字小于10^500。

注意.要定义long int a,b;输出要用格式"%ld".自己能弄的.朋友.

给你贴个大位数加法吧,其他的就自己搞吧

void rever(char *s,char *s2,int n){
int i;
for(i=0;i<n;i++){
s2[i]=s[n-i-1];
}
s2[i]='\0';
}
int main(){
int i,j,k,res;
int st=0;
char a[5000],b[5000];
char aa[5000],bb[5000],cc[5000],c[5000];
cin>>a>>b;
int la,lb,lc;
la=strlen(a);
lb=strlen(b);
rever(a,aa,la);
rever(b,bb,lb);
// cout<<aa<<endl;
// cout<<bb<<endl;
for(i=0;i<la&&i<lb;i++){
res=aa[i]-'0'+bb[i]-'0'+st;
cc[i]='0'+(res%10);
st=res/10;
}
for(;i<la;i++){
res=aa[i]-'0'+st;
cc[i]='0'+res%10;
st=res/10;
}
for(;i<lb;i++){
res=bb[i]-'0'+st;
cc[i]='0'+res%10;
st=res/10;
}
if(st) cc[i++]='1';
cc[i]=&#