A + B Problem II(高精度計算)
阿新 • • 發佈:2019-01-25
#include<stdio.h> #include<string.h> main() { int n; int i,ka,kb,j=1,k,x; char a1[1000],b1[1000]; scanf("%d",&n); getchar(); x=n; while(n--) { int a[1000]={0},b[1000]={0},c[1000]={0}; scanf("%s%s",a1,b1); //gets(a1); //gets(b1); ka=strlen(a1); kb=strlen(b1); k=(ka>kb?ka:kb); for(i=0;i<ka;i++) a[i]=a1[ka-i-1]-'0'; for(i=0;i<kb;i++) b[i]=b1[kb-i-1]-'0'; for(i=0;i<k;i++) { c[i]=a[i]+b[i]+c[i]; c[i+1]=c[i+1]+c[i]/10; c[i]=c[i]%10; } printf("Case %d:\n%s + %s = ",j,a1,b1); j++; if(c[k])k++; for(i=k-1;i>=0;i--) printf("%d",c[i]); printf("\n"); if(j<x+1) printf("\n"); } }
#include<stdio.h> #include"string.h" #define max 1000+10 char a[max],b[max]; int main() { int i,j,T,k; scanf("%d",&T); for(k=0;k<T;k++) { int A[max]={0},B[max]={0}; scanf("%s%s",a,b); int x=strlen(a); int y=strlen(b); for(i=0;i<x;i++)A[i]=a[x-1-i]-'0'; for(i=0;i<y;i++)B[i]=b[y-1-i]-'0'; int c=0; for(i=0;i<max;i++) { int s=(A[i]+B[i]+c); A[i]=s%10; c=s/10; } printf("Case %d:\n%s + %s = ",k+1,a,b); for( i=max-1;i>=0;i--) if(A[i])break; for(j=i;j>=0;j--) printf("%d",A[j]); printf("\n"); if(k<T-1) printf("\n"); } return 0; }