高精度減法 c++
阿新 • • 發佈:2021-01-12
高精度減法 c++
高精度減法
包含判斷負數。程式碼如下:
#include<iostream> #include<cstring> using namespace std; int main(){<!-- --> char a1[1000],b1[1000]; int a[1000],b[1000],c[1000],lena,lenb,lenc; bool t=true; cin>>a1>>b1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); lena=strlen(a1); lenb=strlen(b1); if(lena<lenb) {<!-- --> cout<<"-"; swap(a1,b1); swap(lena,lenb); } else if(lena==lenb) {<!-- --> for(int i=0;i<lena;i++) {<!-- --> if(a1[i]<b1[i]) {<!-- --> cout<<"-"; t=false; break; } } } for(int i=0;i<lena;i++) a[lena-i]=a1[i]-48; for(int i=0;i<lenb;i++) b[lenb-i]=b1[i]-48; lenc=1; int p=1,q=1; do{<!-- --> c[lenc]=a[p]-b[q]; if(c[lenc]<0) {<!-- --> a[p+1]--; c[lenc]+=10; } p++;q++;lenc++; }while(lena>=p); for(int i=lenc-1;i>=1;i--) cout<<c[i]; return 0; }