高精度板子
高精加
string jia(string a,string b){ string jg=""; int i,j,k,c=0; int a1[1001]={0},b1[1001]={0},c1[1001]={0}; for(i=1;i<=a.size();i++) a1[i]=a[a.size()-i]-48; for(j=1;j<=b.size();j++) b1[j]=b[b.size()-j]-48; for(k=1;k<=i-1||k<=j-1;k++){ c1[k]=(a1[k]+b1[k]+c)%10; c=(a1[k]+b1[k]+c)/10; } for(i=k-1;i>0;i--) jg=jg+char(c1[i]+48); if(c==1) jg="1"+jg; return jg; }
高精减
string jian(string a,string b){//高精减 string t,jg=""; int i,n=0,max=0,j,k,c=0,l,y=0,o=0; int a1[100001]={0},b1[100001]={0},c1[100001]={0}; if(a.size()<b.size()||(a.size()==b.size()&&a<b)){ t=a; a=b; b=t; o=1; } for(i=1;i<=a.size();i++) a1[i]=int(a[a.size()-i]-48); for(j=1;j<=b.size();j++) b1[j]=int(b[b.size()-j]-48); for(k=1;k<=i-1||k<=j-1;k++){ c1[k]=a1[k]-b1[k]; if(c1[k]<0){ c1[k]+=10; a1[k+1]--; } } if(o==1) jg="-"; while(c1[k-1]==0&&k!=2) k--; for(i=k-1;i>0;i--) jg=jg+char(c1[i]+48); return jg; }
高精乘
string cheng(string a,string b){//高精乘 int l=0,a1[1001]={0},b1[1001]={0},c1[1001]={0},p,jw,i,j; string ans=""; for(i=1;i<=a.size();i++) a1[i]=int(a[a.size()-i]-48); for(i=1;i<=b.size();i++) b1[i]=int(b[b.size()-i]-48); for(i=1;i<=a.size();i++){ jw=0; for(j=1;j<=b.size();j++){ p=c1[i+j-1]; c1[i+j-1]=(c1[i+j-1]+a1[i]*b1[j]+jw)%10; jw=(p+a1[i]*b1[j]+jw)/10; } c1[j+i-1]+=jw; } l=i+j-2; while(c1[l]==0) l--; for(i=1;i<=l;i++) ans=char(c1[i]+48)+ans; return ans; }
高精除低精
string chu(string a,int b){//高精除以低精 string jg1=""; int i,zs=0,jg; for(i=0;i<=a.size()-1;i++){ zs=zs*10+char(a[i]-48); jg=zs/b; jg1=jg1+char(jg+48); zs=zs%b; } while(jg1[0]=='0'&&jg1.size()>1) jg1.erase(0,1); return jg1; }

浙公网安备 33010602011771号