SWUSTOJ 58: Adding Reversed Numbers

Malidinesia的古代喜剧演员更喜欢喜剧而不是悲剧。不幸的是,大多数古代戏剧都是悲剧。因此,ACM的戏剧顾问决定将一些悲剧转化为喜剧。显然,这项工作非常艰巨,因为尽管所有的事情都会发生相反的变化,但戏剧的基本意义必须保持不变。例如数字:如果悲剧中出现任何数字,在被喜剧接受之前,必须将其转换为相反的形式。

反向数字是用阿拉伯数字书写的数字,但数字的顺序是颠倒的。第一个数字变为最后一个,反之亦然。例如,如果主人公在悲剧中有1245颗草莓,那么他现在有5421颗。请注意,省略了所有前导零。这意味着,如果数字以零结尾,则通过反转丢失零(例如1200给出21)。还要注意,反转的数字永远不会有任何尾随的零。

ACM需要使用相反的数字进行计算。您的任务是将两个倒过来的数字相加,并输出它们的倒过来的和。当然,结果不是唯一的,因为任何特定的数字都是几个数字的反转形式(例如,21在反转之前可以是12、120或1200)。因此,我们必须假设通过反转没有丢失零(例如,假设原始数字是12)。

输入

输入由N个案例组成。输入的第一行只包含正整数N。然后按大小写。每种情况都由恰好一行组成,行中有两个用空格分隔的正整数。这些是你要加的反向数字。

输出

对于每种情况,只打印一行,其中只包含一个整数,即两个反向数字的反向和。在输出中省略任何前导零。

样例输入

3
24 1
4358 754
305 794

样例输出

34
1998
1

省流
把两个数翻转后相加,然后把结果在翻转一下,翻转后最开头可能出现0,要把0省略掉
10翻转是01,结果是1.

26题考过

#include <bits/stdc++.h>
using namespace std;

int fun(int k)//反转
{
    int ans=0;
    while(k!=0)
    {
        ans=ans*10+k%10;
        k/=10;
    }
    return ans;
}

int main()
{
    int n;
    scanf("%d",&n);
    int a,b;
    while(n--)
    {
        scanf("%d %d",&a,&b);
        a=fun(a);
        b=fun(b);
        int sum=a+b;
        printf("%d\n",fun(sum));
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值