最近蒟蒻刚学了高精算法,来发个模板吧!
------------
高精加(HAA)【模板】
1 #include<bits/stdc++.h> 2 using namespace std; 3 string x,y; 4 int a[100010],b[100010],c[100010],xa,xb,xc; 5 /*数组大小根据题目数据范围大小确定 6 此模板只适用于0≤x,y≤10^5的情况*/ 7 int main(){ 8 cin>>x>>y; 9 xa=x.length(),xb=y.length(); 10 xc=max(xa,xb); 11 for(int i=0;i<xa;i++) a[xa-i]=x[i]-'0'; 12 for(int i=0;i<xb;i++) b[xb-i]=y[i]-'0'; 13 for(int i=1;i<=xc;i++){ 14 c[i]+=a[i]+b[i]; 15 c[i+1]=c[i]/10; 16 c[i]%=10; 17 } 18 if(c[xc+1]) xc++; 19 for(int i=xc;i>=1;i--) cout<<c[i]; 20 return 0; 21 }
------------
高精减(HAS)【模板】
1 #include<bits/stdc++.h> 2 using namespace std; 3 string x,y; 4 int a[100010],b[100010],c[100010],xa,xb; 5 /*数组大小根据题目数据范围大小确定 6 此模板只适用于0≤x,y≤10^5的情况*/ 7 int main(){ 8 cin>>x>>y; 9 xa=x.length(),xb=y.length(); 10 if(xa<xb||xa==xb&&x<y){ 11 swap(x,y); 12 swap(xa,xb); 13 cout<<"-"; 14 } 15 for(int i=0;i<xa;i++) a[xa-i]=x[i]-'0'; 16 for(int i=0;i<xb;i++) b[xb-i]=y[i]-'0'; 17 for(int i=1;i<=xa;i++){ 18 if(a[i]<b[i]){ 19 a[i]+=10; 20 a[i+1]--; 21 } 22 c[i]=a[i]-b[i]; 23 } 24 while(c[xa]==0&&xa>1) xa--; 25 for(int i=xa;i>=1;i--) cout<<c[i]; 26 return 0; 27 }
标签:10,高精度,int,xa,xb,100010,模板 来源: https://www.cnblogs.com/integricode26/p/high-accuracy-algorithm-template.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。