#include cstdio #include cstring #include iostream #define maxn 107 using namespace std; char a[maxn],b[maxn];//接受输入的字符串 int ta[maxn],tb[maxn];//倒序记录输入的字符串 int main() { int i,t; int len1,len2; scanf("%d",
#include <cstdio>
#include <cstring>
#include <iostream>
#define maxn 107
using namespace std;
char a[maxn],b[maxn];//接受输入的字符串
int ta[maxn],tb[maxn];//倒序记录输入的字符串
int main()
{
int i,t;
int len1,len2;
scanf("%d",&t);
while (t--)
{
//注意要请0
memset(ta,0,sizeof(ta));
memset(tb,0,sizeof(tb));
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
int len = max(len1,len2);
//两个数组统一宽度,倒序记录在ta,tb中,多出的0补上
for (i = 0; i < len; ++i)
{
if (len1 - 1 >= 0)
{
ta[i] = a[len1 - 1] - '0';
len1--;
}
else ta[i] = 0;
if (len2 - 1 >= 0)
{
tb[i] = b[len2 - 1] - '0';
len2--;
}
else tb[i] = 0;
}
//模拟加法的过程
for (i = 0; i < len; ++i)
{
ta[i] = ta[i] - tb[i];
if (ta[i] < 0)
{
ta[i + 1] -= 1;
ta[i] += 10;
}
}
bool flag = false;
//false表示前边还没有出现1-9的数,true表示前边出现了1-9的数字
//可以处理多余的前导0
for (i = len; i >= 0; --i)
{
if (flag || ta[i])
{
flag = true;
printf("%d",ta[i]);
}
}
if (!flag) printf("0");
printf("\n");
}
return 0;
}