1. 程式人生 > >高精度減法

高精度減法

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

高精度減法