高精度減法
阿新 • • 發佈:2018-08-31
mes reg gis () 。。 urn ash style i++
敲代碼要敲瘋了!!
不怕難,就怕煩。。。
好了,很晚了,明天就開學了
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
高精度減法