acm1002大数加法

来源:互联网 发布:人民网舆情监测室 知乎 编辑:程序博客网 时间:2024/06/05 15:16
利用数组对大数进行运算
#include<stdio.h>
#include<string.h>
#define N 1002
int main(){
int i,j,n,len1,len2;
char a[N],b[N];
int c[N]={0};
while(scanf("%d",&n)!=EOF){
for( i=1;i<=n;i++){
j=-1;
scanf("%s",&a);
scanf("%s",&b);
len1=strlen(a);
len2=strlen(b);
while(len1>0&&len2>0){
j++;
c[j]+=((a[--len1]-'0')+(b[--len2]-'0'));
if(c[j]>=10){//如果c[j]大于10则取余 
c[j]-=10;
c[j+1]++; 
}
}
if(len1>0){
while(len1>0){
c[j+1]+=(a[len1-1]-'0');
j++;
if(c[j]>=10){
c[j+1]++;
c[j]=c[j];
}
len1--;

}
}
else if(len2>0){
while(len2>0){
c[j+1]+=(b[len2-1]-'0');
j++;
if(c[j]>=10){
c[j+1]++;
c[j]=c[j];
}
len2--;
}
}
else if(len1==len2){
if(c[j+1]>0)
j++;
}
printf("Case %d:\n",i);
printf("%s + %s = ",a,b);
for(int l=j;l>=0;l--){
printf("%d",c[l]);
c[l]=0;
}
printf("\n");
if(i!=n)
printf("\n");
}
return 0;
}
}
原创粉丝点击