朴素de题解
2024-12-11 18:57:42
发布于:广东
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int a[100000],b[100000],c[100000];
bool q(int a[],int b[],int l){
for(int i=l;i>0;i--){
if(a[i]>b[i])return false;
if(a[i]<b[i])return true;
}
}
void minus(string s1,string s2){
int l1=s1.size(),l2=s2.size();
int l3=max(l1,l2);
for(int i=0;i<l1;i++)a[l1-i]=s1[i]-'0';
for(int i=0;i<l2;i++)b[l2-i]=s2[i]-'0';
if(q(a,b,l3)){
cout << "-";
swap(a,b);
}
for(int i=1;i<=l3;i++){
c[i]+=a[i]-b[i];
if(c[i]<0){
c[i+1]-=1;
c[i]+=10;
}
}
while(c[l3]==0 and l3!=1)l3--;
for(int i=l3;i>0;i--)cout << c[i];
}
int main(){
cin >> s1 >> s2;
minus(s1,s2);
}
这里空空如也
有帮助,赞一个