题目描述:
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<stdio.h>
int main(){
int n,i,a,b,ra,rb,sum,rsum,ta,tb;
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&n) != EOF){
for(i = 0;i < n;i++){
ra = 0;//a的翻转
rb = 0;//b的翻转
rsum = 0;//a+b和的翻转
scanf("%d %d",&a,&b);
ta = a;
tb = b;
sum = a + b;
//a的翻转
while(ta){
ra = ra * 10 + ta % 10;
ta = ta / 10;
}
//b的翻转
while(tb){
rb = rb * 10 + tb % 10;
tb = tb / 10;
}
//a+b和的翻转
while(sum){
rsum = rsum * 10 + sum % 10;
sum = sum / 10;
}
//两个数反转的和是否等于两个数的和的反转。
if(ra + rb == rsum){
printf("%d\n",a + b);
}
else{
printf("NO\n");
}
}
}
}