a-b高精
#include<bits/stdc++.h>
using namespace std;
int cmp(string a,string b)
{
int len1=a.size();
int len2=b.size();
int g;
if (len1>len2)
g=1;//a-b
if(len1<len2)
g=2;//-(b-a)
if (len1==len2)
{
for (int i=0;i<len1;i++)
{
if (a[i]>b[i])
{
g=1;//a-b
break;
}
if (b[i]>a[i])
{
g=2;//-(b-a)
break;
}
if (a[i]=b[i])
g=3;//0
}
}
//cout<<g<<endl;
return g;
}
string a,b;
string jian(string a,string b)
{
int len=a.length()-b.length();
for(int i=0;i<len;i++)
{
b="0"+b;
}
int Len=a.length();
int tmp;
int tuiwei=0;
string c;
for(int i=Len-1;i>=0;i--)
{
tmp=(a[i]-'0')-(b[i]-'0')-tuiwei;
if(tmp<0)
{
tuiwei=1;
tmp+=10;
}
else
{
tuiwei=0;
}
c=char(tmp+'0')+c;
}
if(tuiwei!=0) c=char(tuiwei-'0')+c;//处理第一位
c.erase(0,c.find_first_not_of('0'));
return c;
}
int main()
{
cin>>a>>b;
if(cmp(a,b)==1)
{
cout<<jian(a,b)<<endl;
}
else
{
if(cmp(a,b)==2)
{
cout<<"-";
swap(a,b);
cout<<jian(a,b)<<endl;
}
else
{
if(cmp(a,b)==3)
{
cout<<"0"<<endl;
return 0;
}
}
}
}