九度 Online Judge 算法 刷题 题目1089:数字反转

来源:互联网 发布:老外中国快递知乎 编辑:程序博客网 时间:2024/05/22 02:12

题目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****************************************************************/
0 0