高精度减法
2025-03-22 16:06:54
发布于:福建
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int a[1001],b[1001],c[1001];
int main() {
cin>>s1>>s2;
int lena=s1.size();
int lenb=s2.size();
if(lena<lenb||lena==lenb&&s1<s2){
cout<<'-';
swap(s1,s2);
swap(lena,lenb);
}
for(int i=0;i<lena;i++)a[i]=s1[lena-1-i]-'0';
for(int i=0;i<lenb;i++)b[i]=s2[lenb-1-i]-'0';
int lenc=0;
while(lenc<lena){
c[lenc]=a[lenc]-b[lenc];
if(c[lenc]<0){
a[lenc+1]--;
c[lenc]+=10;
}
lenc++;
}
while(c[lenc]==0&&lenc>0)lenc--;
for(int i=lenc;i>=0;i--)cout<<c[i];
return 0;
}
全部评论 1
hi,感谢分享,不过为保证社区内容质量和一致性,你可以参考《如何写好一篇题解?》来正确撰写题解哦。
2025-03-24 来自 浙江
0okk
2025-03-29 来自 福建
0
有帮助,赞一个