标签:精度 cout string int ring std using ios 高精度加法
高精度加法
#include <cstdio> #include <cstring> #include <iostream> using namespace std; string a,b; int la,lb,lm,as[210],bs[210],cs[210],x=0; int main() { cin>>a>>b; la=a.size();lb=b.size(); for(int i=0;i<la;i++)as[la-i]=a[i]-‘0‘; for(int i=0;i<lb;i++)bs[lb-i]=b[i]-‘0‘; lm=1; while(lm<=la||lm<=lb){ cs[lm]=as[lm]+bs[lm]+x; x=cs[lm]/10; cs[lm]%=10; lm++; } cs[lm]=x; int ii; for(ii=lm;;ii--)if(cs[ii]!=0)break; for(int i=ii;i>=1;i--)cout<<cs[i]; }
高精度减法(被减数大于减数)
#include <cstdio> #include <cstring> #include <iostream> using namespace std; string a,b; int la,lb,lm,as[210],bs[210],cs[210],x=0; int main() { cin>>a>>b; if(a==b){ cout<<0<<endl; return 0; } la=a.size();lb=b.size(); for(int i=0;i<la;i++)as[la-i]=a[i]-‘0‘; for(int i=0;i<lb;i++)bs[lb-i]=b[i]-‘0‘; lm=1; while(lm<=la||lm<=lb){ cs[lm]=as[lm]-bs[lm]; cs[lm]%=10; lm++; } for(int i=0;i<=lm;i++)if(cs[i]<0){ cs[i]+=10; cs[i+1]--; } int ii; for(ii=lm;;ii--)if(cs[ii]!=0)break; for(int i=ii;i>=1;i--)cout<<cs[i]; }
标签:精度 cout string int ring std using ios 高精度加法
原文地址:http://www.cnblogs.com/A1269180380/p/6159069.html