游客 Signup | Login
中文 | En

1402 - 数字反转

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

Input

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

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

Output

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

Examples

Input

2
12 34
99 1

Output

46
NO

Solution C

#include <stdio.h>

int travl(int x)
{
	int s=0;
	while(x!=0)
	{
		s=s*10+x%10;
		x=x/10;
	}
	return s;
}
int main(void)
{
	int a,b,n;
	int s;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d%d",&a,&b);
		s=a+b;
		a = travl(a);
		b = travl(b);
		s = travl(s);
		if(s==(a+b))
			printf("%d\n",travl(s));
		else
			printf("NO\n");
	}
	return 0;
}

Solution C++

#include <stdio.h>

int ReverseNumber(int num){
	int revverseNumber = 0;
	while(num){
		revverseNumber = revverseNumber*10 + num%10;
		num /= 10;
	}
	return revverseNumber;
}

int main(){
#ifndef ONLINE_JUDGE
	freopen("in", "r", stdin);
#endif

	int nCase;
	scanf("%d", &nCase);
	while(nCase--){
		int a, b;
		scanf("%d%d", &a, &b);
		if(ReverseNumber(a+b)==(ReverseNumber(a)+ReverseNumber(b))){
			printf("%d\n", a+b);
		}else{
			puts("NO");
		}
	}

	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题