【高精度演算法】A-B(答案可負)
阿新 • • 發佈:2019-01-08
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> char s1[10010],s2[10010],s3[10010]; int a[10010],b[10010],c[10010]; int main(){ int i,j,k,m,n,alen,blen,clen; gets(s1); alen=strlen(s1); gets(s2); blen=strlen(s2); if(alen<blen ||(alen==blen && strcmp(s1,s2)<0)){ printf("-");strcpy(s3,s1);strcpy(s1,s2);strcpy(s2,s3); } alen=strlen(s1); blen=strlen(s2); for(i=0;i<alen;i++) a[i+1]=s1[alen-i-1]-'0'; for(i=0;i<blen;i++) b[i+1]=s2[blen-i-1]-'0'; for(i=1;i<=alen;i++) c[i]=a[i]-b[i]; clen=alen; for(i=1;i<=clen;i++){ if(c[i]<0){ c[i+1]--; c[i]+=10; } } while(c[clen]==0 && clen>1)clen--; for(i=clen;i>=1;i--) printf("%d",c[i]); puts(""); return 0; }