hdu 4554 叛逆的小明

本题链接:点击打开链接

 

叛逆的小明

 

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1489    Accepted Submission(s): 996

 

 

Problem Description

叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如:
小明会把1234它看成4321;把-1234看成-4321;把230看成032 (032=32);把-230看成-032(-032=-32)。

现在,小明做了一些a+b和a-b的题目(a, b为整数且不含前导0),如果给你这些题目正确的答案,你能猜出小明会做得到什么答案吗?

 

 

Input

输入第一行为一个正整数T(T<=10000),表示小明共做了T道题。
接下来T行,每行是两个整数x,y(-1000000<=x, y<=1000000), x表示a+b的正确答案,y表示a-b的正确答案。
输入保证合法,且不需考虑a或b是小数的情况。

 

 

Output

输出共T行,每行输出两个整数s t,之间用一个空格分开,其中s表示小明将得到的a+b答案,t表示小明将得到的a-b答案。

 

 

Sample Input

 

3 20 6 7 7 -100 -140

 

 

Sample Output

 

38 24 7 7 -19 -23

 

 

Source

2013金山西山居创意游戏程序挑战赛——初赛(4)

 

 

Recommend

liuyiding   |   We have carefully selected several similar problems for you:  6032 6031 6030 6029 6028 

 

本题题意:中文题,不啰嗦。

ps:比较简单的问题,但是我以前还是花了不少时间,是我考虑的太复杂了,考虑了a,b初始值正负数的四值情况了。

 

解题思路:先利用解一元二次方程式的方法求出a,b数位颠倒之后的值,再求a,b的原值就行。

代码:

 

#include <cstdio>
#include <cmath>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int s1,s2;
        int a1,b1,p,a=0,b=0,s,t;   //a1,b1表示颠倒之后的值,a,b为原来的值,
        scanf("%d%d",&s1,&s2);
        {
            a1=(s1+s2)/2;         //求颠倒之后的a1的值
            b1=s1-a1;             //求颠倒之后的b1的值
        }
        while(a1)                //求a,b的原值
        {
            p=a1%10;
            a=10*a+p;
            a1=a1/10;
        }
        while(b1)
        {
            p=b1%10;
            b=10*b+p;
            b1=b1/10;
        }
        s=a+b;
        t=a-b;
        printf("%d %d\n",s,t);
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值