题目1089:数字反转
题目描述:
12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。
输入:
第一行一个正整数表示测试数据的个数n。
只有n行,每行两个正整数a和b(0
code
c语言实现
#include<stdio.h>
#include <stdlib.h>
int fan ( int a) {
int tem=0;
while ( a!=0 ) {
tem = tem*10 +a%10;
a=a/10;
}
return tem;
}
int fun( int a,int b ) {
if (a+b == fan(fan(a) + fan(b)))
return 1;
else
return 0;
}
int main() {
int *p=NULL;
int n,i=0,a,b;
scanf ("%d",&n);
p=(int *)malloc(sizeof(int)*2*n);
while (i < n) {
scanf("%d %d",p+i*2,p+i*2+1);
if (*(p+i*2)<=0 || *(p+i*2) >10000 || *(p+i*2+1)<=0 || *(p+i*2+1)>10000)
continue;
else
i++;
}
for (i = 0;i < n*2;i+=2) {
if (fun(*(p+i),*(p+i+1)) == 1)
printf("%d\n", *(p+i)+*(p+i+1));
else
printf("NO\n");
}
free(p);
return 0;
}
/**************************************************************
Problem: 1089
User: langzimaizan
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/