高精度减法
敲代码要敲疯了!!
不怕难,就怕烦。。。
好了,很晚了,明天就开学了
22:30
//高精度减法——Crazily #include<bits/stdc++.h> using namespace std; char a[100001],b[100001]; int e[100000],d[100001]; int c[100001]={0}; int i,j,x,y,z,p,q,o; bool f(){ for(register int i=0;i<x;i++){ if(a[i]!='0') return false; } for(register int i=0;i<y;i++){ if(b[i]!='0') return false; } return true; } int main(){ q=0; cin>>a>>b; x=strlen(a); y=strlen(b); if(f()){ cout<<0; return 0; } if(x>y){ p=x; q=1; } else p=y; for(i=x-1,j=0;i>=0,j<=x-1;i--,j++) e[j]=a[i]-'0'; for(i=y-1,j=0;i>=0,j<=y-1;i--,j++) d[j]=b[i]-'0'; if(x==y){ q=1; for(i=p-1;i>=0;i--) if(e[i]<d[i]){ q=0; break; } } for(i=0;i<p;i++){ if(q==1) c[i]=e[i]-d[i]; else c[i]=d[i]-e[i]; } if(q==0) cout<<"-"; for(i=0;i<p;i++){ if(c[i]<0){ c[i]+=10; c[i+1]-=1; } } o=p; for(i=p;i>=0;i--){ if(c[i]!=0) break; o=o-1; if(i==0&&c[i]==0){ o=0; break; } } for(i=o;i>=0;i--) cout<<c[i]; }
这段代码就不做详细解析了
我也去睡了
好梦O(∩_∩)O