#include <iostream>
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
string sub(string s1,string s2)
{
string ans = "";
int l1=s1.length();
int l2=s2.length();
bool delta = 0;
if(l1<l2)
{
for(int i=1;i<=l2-l1;i++)
s1="0"+s1;
}
else
{
for(int i=1;i<=l1-l2;i++)
s2="0"+s2;
}
if (s1.compare(s2) == -1)
{
swap(s1,s2);
delta = 1;
}
l2 = s2.length();
int c = 0;
int temp;
for (int i = l2 - 1;i >= 0;i--)
{
temp = s1[i] - s2[i] + c;
c = 0;
if (temp < 0)
{
temp += 10;
c = -1;
}
ans = char(temp + '0') + ans;
}
ans.erase(0,ans.find_first_not_of('0'));
if (ans.length() < 1)
{
return "0";
}
if (delta)
{
ans = '-' + ans;
}
return ans;
}
int main()
{
string s1,s2;
cin >> s1 >> s2;
cout << sub(s1,s2);
return 0;
}
第三个点:
输入: 88460914424991 4291703115049359
输出: -4203242200624368
我在本地测试结果就是这个,可不知道为什么WA了,求助