标签:
第一道大数,做这个题要细心,,
#include<stdio.h> #include<string.h> int main() { int m,n; scanf("%d",&n); m=1; while(n--) { int i,j,k,t; char a[1001],b[1001],c[1001]={0}; scanf("%s %s",&a,&b); if(strlen(a)>=strlen(b)) { for(i=strlen(a)-1,j=strlen(b)-1,k=0;i>=0;i--,j--,k++)//从后往前依次相加; { if(j>=0) c[k]=a[i]+b[j]-‘0‘;//这里数组中的元素是字符; else c[k]=a[i]; } } else if(strlen(a)<strlen(b)) { for(i=strlen(b)-1,j=strlen(a)-1,k=0;i>=0;i--,j--,k++) { if(j>=0) c[k]=a[j]+b[i]-‘0‘; else c[k]=b[i]; } } //puts(c); //printf("%d\n",k); for(i=0;i<strlen(c);i++) { if(i!=strlen(c)-1) { if(c[i]>‘9‘)//if是判断语句,,; {t=i;c[i]-=10;c[++t]++;} } else { if(c[i]>‘9‘) {
c[i]-=10;
c[++t]=‘1‘;
}
} }
strrev(c);//字符串反转;
printf("Case %d:\n",m); //printf("\n"); printf("%s + %s = %s\n",a,b,c); if(n>0) printf("\n");//注意格式,这边有点坑; ++m; } return 0; }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/4503217.html