高精度减法
2025-11-02 17:47:04
发布于:江苏
#include<bits/stdc++.h>
using namespace std;
int c[11000];
int main(){
string a,b;
cin>>a>>b;
bool flag=false;
if(a.size()<b.size()||(a.size()==b.size()&&a<b)){
swap(a,b);
flag=true;
}
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
while(b.size()<a.size())b.push_back('0');
int t=0;
int len=0;
for(int i=0;i<a.size();i++){
int x=a[i]-'0';
int sub=b[i]-'0'+t;
if(x<sub){
x+=10;
t=1;
}else{
t=0;
}
x-=sub;
c[++len]=x;
}
if(flag==true)cout<<"-";
while(len>1&&c[len]==0)len--;
for(int i=len;i>=1;i--)cout<<c[i];
return 0;
}
这里空空如也







有帮助,赞一个