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

来源:互联网 发布:jersey框架 get json 编辑:程序博客网 时间:2024/05/18 00:39
#include<stdio.h>#include<malloc.h>#include<string.h>#define MAX 1000int 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[n]=a[i]-'0'+b[j]-'0'+c;c=0;if(d[n]>9){c=1;d[n]-=10;}}if(i>=0){for(;i>=0;i--,n++){d[n]=a[i]-'0'+c;c=0;if(d[n]>9){c=1;d[n]-=10;}}}if(j>=0){for(;j>=0;j--,n++){d[n]=b[j]-'0'+c;c=0;if(d[n]>9){c=1;d[n]-=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;}

0 0
原创粉丝点击