A30365.【算法】减法
2025-01-12 11:43:19
发布于:江苏
4阅读
0回复
0点赞
#include<iostream>
using namespace std;
string subtract(string A,string B){
string C="";
int a[10000]={0},b[10000]={0},sum[10000]={0},lena=A.length(),lenb=B.length(),max=(lena>lenb?lena:lenb),digs=0,x=0;
bool neg=(lena<lenb);
if(lena==lenb)
for(int i=0;i<=lena;i++)
if(A[i]<B[i]){
neg=1;
break;
}
if(neg){
C="-";
swap(A,B);
swap(lena,lenb);
}
for(int i=0;i<max;i++){
if(i<lena) a[i]=A[lena-i-1]-'0';
if(i<lenb) b[i]=B[lenb-i-1]-'0';
sum[i]=a[i]-b[i]-x;
if(sum[i]<0){
x=1;
sum[i]+=10;
}else x=0;
digs++;
}
for(int i=0;i<digs;i++){
C+=sum[digs-i-1]+'0';
if(!(neg)&&C=="0") C="";
else if(neg&&C=="-0") C="-";
}
if(C=="") return "0";
return C;
}
int main(){
string a,b;
cin>>a>>b;
cout<<subtract(a,b);
return 0;
}
这里空空如也
有帮助,赞一个