Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
115829 | 陈家宝 | 高精度减法 | C++ | 通过 | 100 | 0 MS | 264 KB | 854 | 2023-12-14 13:28:41 |
#include<bits/stdc++.h> using namespace std; int a[10087],b[10087]; string max_(string x,string y){ if(x.size()==y.size()){ if(x>=y) return x; return y; } else{ if(x.size()>y.size()) return x; return y; } } int main(){ string x,y; cin>>x>>y; bool f=false; if(max_(x,y)==y){ swap(x,y); f=true; } int xs=x.size(); int ys=y.size(); for(int i=xs-1;i>=0;i--) a[i]=x[xs-i-1]-48; for(int i=ys-1;i>=0;i--) b[i]=y[ys-i-1]-48; int maxl=max(xs,ys); int o=0; for(int i=0;i<maxl;i++){ a[i]-=b[i]; if(a[i]<0){ a[i+1]--; a[i]+=10; } } maxl+=2; while(a[maxl]==0&&maxl>=0) maxl--; if(maxl==-1){ cout<<0; return 0; } if(f) cout<<"-"; for(int i=maxl;i>=0;i--) cout<<a[i]; return 0; }