#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
string sub(string s,string str)
{
int temp;
reverse(s.begin(),s.end());
reverse(str.begin(),str.end());
for (int i = 0; i < s.length(); i++)
{
temp = (str[i] - '0') - (s[i] - '0');
if(temp < 0)
{
for (int j = i + 1; j < str.length(); j++)
{
if(str[j] != '0'){ str[j] -= 1;break;}
else str[j] = '9';
}
str[i] = 10 + temp + '0';
}
else str[i] = temp + '0';
}
reverse(str.begin(),str.end());
return str;
}
int main()
{
string str,s;
string::iterator it;
while (cin>>str>>s)
{
if(s.length() > str.length())swap(s,str);
str = sub(s,str);
it = str.begin();
for (int i = 0; i < str.length() - 1; i++)
{
if (*it == '0')str.erase(it);
else break;
it++;
}
cout<<str<<endl;
}
return 0;
}
其实大数相减和大数相加方法基本差不多,但这里要注意的是 比如:100 -1 输出的 099 要转化下成99。