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; }