#include<cstdio>
#include<string>
#include<algorithm>
#include<iostream>
using namespace std;
string s1,s2;
bool flag;
int a[520],b[520],c[520],l1,l2,len;
inline void chuli() {
l1=s1.size(),l2=s2.size();
reverse(s1.begin(),s1.end());
for(int i=0;i<l1;i++)
a[i+1]=s1[i]-'0';
reverse(s2.begin(),s2.end());
for(int i=0;i<l2;i++)
b[i+1]=s2[i]-'0';
}
inline bool compare() {
if(l1>l2) return true;
if(l1<l2) return false;
for(int i=l1;i;i--) {
if(a[i]>b[i]) return true;
if(a[i]<b[i]) return false;
}
return true;
}
inline void sub1() {
len=max(l1,l2);
for(int i=1;i<=len;i++) {
c[i]+=b[i]-a[i];
if(c[i]<0) {
c[i+1]--;
c[i]+=10;
}
}
while((c[len]==0)&&(len>1)) len--;
}
inline void sub2() {
len=max(l1,l2);
for(int i=1;i<=len;i++) {
c[i]+=a[i]-b[i];
if(c[i]<0) {
c[i+1]--;
c[i]+=10;
}
}
while((c[len]==0)&&(len>1)) len--;
}
inline void print() {
for(int i=len;i>0;i--)
printf("%d",c[i]);
return;
}
int main() {
cin>>s1>>s2;
chuli();
if(!compare()) {
printf("-");
sub1();
}
else sub2();
print();
return 0;
}
高精度之减法模板
最新推荐文章于 2021-08-10 17:55:44 发布