我的代码只能保证被减数比减数大
如果被减数比减数小就不对
找不到哪里出错
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
const int MAXN=10086+5;
string a,b;
int numa[MAXN],numb[MAXN],ans[MAXN];
int sizea,sizeb,s=1;
bool check=false;
int main(){
cin>>a>>b;
sizea=a.size();
sizeb=b.size();
if(sizea<sizeb||(a<b&&sizea==sizeb)){
swap(a,b);
check=true;
}
if(check) cout<<"-";
for(int i=0;i<sizea;i++){
numa[sizea-i]=a[i]-'0';
}
for(int i=0;i<sizeb;i++){
numb[sizeb-i]=b[i]-'0';
}
int i=1;
while(i<=sizea||i<=sizeb){
if(numa[i]<numb[i]){
numa[i+1]--;
numa[i]+=10;
}
ans[i]=numa[i]-numb[i];
i++;
}
int tot=i;
while(ans[tot]==0&&tot>1) tot--;
for(int i=tot;i>=1;i--){
cout<<ans[i];
}
return 0;
}