您的位置:首页 > 其它

杭电ACM第1002题——A + B Problem II

2017-03-15 16:43 260 查看
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define MAX 1000

int main(){
int t,len1,len2,len3,i,j,k,n,c;
char *a=(char *)malloc(MAX*sizeof(char));
char *b=(char *)malloc(MAX*sizeof(char));
scanf("%d",&t);
for(k=1;k<=t;k++){
scanf("%s %s",a,b);
len1=strlen(a);
len2=strlen(b);
len3=len1>len2?len1:len2;
int *d=(int *)malloc((len3+2)*sizeof(int));

n=0;
c=0;

for(i=len1-1,j=len2-1;i>=0&&j>=0;i--,j--,n++){
d
=a[i]-'0'+b[j]-'0'+c;
c=0;
if(d
>9){
c=1;
d
-=10;
}
}
if(i>=0){
for(;i>=0;i--,n++){
d
=a[i]-'0'+c;
c=0;
if(d
>9){
c=1;
d
-=10;
}
}
}
if(j>=0){
for(;j>=0;j--,n++){
d
=b[j]-'0'+c;
c=0;
if(d
>9){
c=1;
d
-=10;
}
}
}

if(c!=0)
d[n++]=c;

printf("Case %d:\n",k);
printf("%s + %s = ",a,b);
for(i=n-1;i>=0;i--)
printf("%d",d[i]);
if(k!=t)
printf("\n\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: