高精度减法
2025-04-20 10:43:00
发布于:浙江
高精度减法
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int a1[10000],a2[10000],sub[10000];
int main(){
cin >> s1 >> s2;
int len1 = s1.size();
int len2 = s2.size();
if(len1 < len2 || len1 == len2 && s1 < s2){
cout << "-";
swap(s1,s2);
}
for(int i = 0;i < len1;i++){
a1[i] = s1[len1-1-i]-48;
}
for(int i = 0;i < len2;i++){
a2[i] = s2[len2-1-i]-48;
}
int start = 0;
while(start < len1){
if(a1[start] < a2[start]){
a1[start]+=10;
a1[start+1]-=1;
}
sub[start] = a1[start] - a2[start];
start++;
}
while(sub[start] == 0 && start > 0){
start--;
}
for(int i = start;i >= 0;i--){
cout << sub[i];
}
return 0;
}
这里空空如也
有帮助,赞一个