- #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,sizeof(ta));
- ????????memset(tb,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;
- ????????}
- ????????//模拟加法的过程
- ????????????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;
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|