AcWing 792. 高精度减法
原题链接
简单
作者:
最后五分钟
,
2024-10-18 01:01:13
,
所有人可见
,
阅读 5
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],b[N];
int n;
void jian(int a[],int b[])
{
for(int i=0,t=0;i<n;i++)
{
a[i]=a[i]-b[i]-t;
if(a[i]<0)a[i]+=10,t=1;
else t=0;
}
}
bool check(string A,string B)
{
if(A.size()!=B.size())return A.size()>B.size();
else return A>=B;
}
int main()
{
string A,B;
cin>>A>>B;
if(!check(A,B))
{
cout<<'-';
swap(A,B);
}
for(int i=A.size()-1;i>=0;i--)
a[i]=A[A.size()-1-i]-'0';
n=A.size();
for(int i=B.size()-1;i>=0;i--)
b[i]=B[B.size()-1-i]-'0';
jian(a,b);
int cnt=A.size()-1;
while(a[cnt]==0&&cnt!=0)cnt--;
for(int i=cnt;i>=0;i--)cout<<a[i];
return 0;
}