高精度减法模板

来源:互联网 发布:ipad1下载不了软件 编辑:程序博客网 时间:2024/06/05 07:09

我蒟蒻,所以要学高精度。

#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<cmath>#include<algorithm>using namespace std;char A[410],B[410],C[410];int a[410],b[410],c[410],la,lb;void init(){la=strlen(A); lb=strlen(B);if(la<lb||(la==lb&&strcmp(A,B)<0))   {strcpy(C,A); strcpy(A,B); strcpy(B,C); printf("-");}la=strlen(A); lb=strlen(B);memset(a,0,sizeof(a)); memset(b,0,sizeof(b));int i,j,x;for(i=0;i<la;i++)   {x=A[i]-'0'; a[i]=A[la-1-i]-'0'; a[la-1-i]=x;}for(i=0;i<lb;i++)   {x=B[i]-'0'; b[i]=B[lb-1-i]-'0'; b[lb-1-i]=x;}}void jian(){int i,l=la-1;for(i=0;i<=l;i++)   {if(a[i]<b[i]) {a[i]=a[i]+10; a[i+1]--;}c[i]=a[i]-b[i];   }while(c[l]==0&&l>0) l--;for(i=l;i>=0;i--)   printf("%d",c[i]);printf("\n");}int main(){while(scanf("%s%s",A,B)!=EOF)   {init(); jian();}return 0;}


0 0