1861: zbj的a+b
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 38 Solved: 33
[ Submit][ Status][ Web Board]
Description
zbj最近跟女神告白失败,极度的绝望之下,他的脑回路发生了一些变化——他看数字都变成了反的!
比如zbj会把987看成789,把-56看成-65,把100看成001(001=1),把-90看成-09(-09=-9)。
为了治疗zbj,医生让他做了一些a+b和a-b的题目,如果告诉你这些题目的正确答案,你能知道zbj会得出什么结果吗?
Input
输入第一行为一个正整数T(T<=10000),表示zbj共做了T道题。
接下来T行,每行是两个整数x,y(-1000000<=x, y<=1000000), x表示a+b的正确答案,y表示a-b的正确答案。
数据保证合法并且保证输入的所有数据中不存在前导0.
Output
输出共T行,每行输出两个整数s t,之间用一个空格分开,其中s表示zbj得到的a+b答案,t表示zbj将得到的a-b答案。
Sample Input
3
20 6
7 7
-100 -140
Sample Output
38 24
7 7
-19 -23
【解析】
意思就是正确的a+b,a-b题目已经给出,所以我们可以得出a和b然后把a和b的各个位数放在数组当中,再乘出来再输出
就可以了。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int t,a,b,c,d,n,m,i,j;
scanf("%d",&t);
while(t--)
{
int p[101]={0};
int q[101]={0};
scanf("%d%d",&a,&b);
c=(a+b)/2;
d=a-c;
i=0;
n=0,m=0;
while(c!=0)
{
p[i++]=c%10;
c=c/10;
}
for(j=0;j<=i-1;j++)
{
n=n*10+p[j];
}
i=0;
while(d!=0)
{
q[i++]=d%10;
d/=10;
}
for(j=0;j<=i-1;j++)
{
m=m*10+q[j];
}
printf("%d %d\n",n+m,n-m);
}
return 0;
}