高精度加法模板

来源:互联网 发布:阿里云解除学生认证 编辑:程序博客网 时间:2024/06/05 05:05

哎!说来惭愧,从高一刚开始学时,高精度就没写对过。今天猛然想起,打个模板。

#include<cstdio>#include<iostream>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>using namespace std;char A[405],B[405];int a[405],b[405],c[405],la,lb;void change(){int i,t;for(i=0;i<=(la-1)>>1;i++)   {t=(int)A[i]-'0'; a[i]=(int)A[la-1-i]-'0'; a[la-1-i]=t;}for(i=0;i<=(lb-1)>>1;i++)   {t=(int)B[i]-'0'; b[i]=(int)B[lb-1-i]-'0'; b[lb-1-i]=t;}}void add(){int l,i,j,s,t=0;l=max(la,lb);for(i=0;i<l;i++)   {c[i]=a[i]+b[i]+t;    t=c[i]/10; c[i]=c[i]%10;   }if(t!=0) {c[l]=t; l++;}for(i=l-1;i>=0;i--) printf("%d",c[i]);printf("\n");}int main(){while(scanf("%s",A)!=EOF)   {scanf("%s",B);la=strlen(A); lb=strlen(B);memset(a,0,sizeof(a)); memset(b,0,sizeof(b));    change(); add();   }return 0;}

0 0
原创粉丝点击