A30985.大整数减法 题解
2025-06-14 20:38:08
发布于:北京
3阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int a[205],b[205],c[205];
void convert(string s,int w[]){
reverse(s.begin(),s.end());
for (int i=0;i<s.size();i++) w[i]=s[i]-'0';
}
void mi(int x[],int y[],int z[]){
for (int i=0;i<200;i++){
if (x[i]<y[i]){
x[i]+=10;
x[i+1]--;
}
z[i]=x[i]-y[i];
}
}
int main(){
string n,m;
cin>>n>>m;
bool flag=true;
if (n.size()<m.size()){
flag=false;
swap(n,m);
}
else if (n.size()==m.size()&&n<m){
flag=false;
swap(n,m);
}
convert(n,a);
convert(m,b);
mi(a,b,c);
int i=201;
while (c[i]==0&&i>0) i--;
if (!flag) cout<<'-';
for (int j=i;j>=0;j--) cout<<c[j];
return 0;
}
这里空空如也
有帮助,赞一个