您的位置:首页 > 编程语言 > C语言/C++

C++ 数字翻转(九度OJ 1089)

2016-08-28 10:01 225 查看

题目描述:
    12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。

输入:
    第一行一个正整数表示测试数据的个数n。

    只有n行,每行两个正整数a和b(0<a,b<=10000)。

输出:
    如果满足题目的要求输出a+b的值,否则输出NO。

样例输入:

2
12 34
99 1

样例输出:
46
NO

源代码:

#include <iostream>
using namespace std;
int main()
{
int n;
int a,b,sum,t;
int turna,turnb,turnsum; //翻转后的a b a+b
cin>>n;
while(n>0)
{
cin>>a>>b;
sum=a+b;
t=sum;
turna=0,turnb=0,turnsum=0;
while(a!=0)
{
turna=turna*10+a%10;
a/=10;
}
while(b!=0)
{
turnb=turnb*10+b%10;
b/=10;
}
while(sum!=0)
{
turnsum=turnsum*10+sum%10;
sum/=10;
}
if(turna+turnb==turnsum)
{
cout<<t<<endl;
}
else
{
cout<<"NO"<<endl;
}
n--;
}
return 0;
}
程序截图:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: