读书人

互联网络公司面试题之三

发布时间: 2012-12-24 10:43:13 作者: rapoo

互联网公司面试题之三
问题:12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问它们两个数反转的和是否等于两个数的和的反转,请编程实现。要求程序的效率尽可能高、代码尽量短以及内存使用量尽量小。

Input->第一行是一个正整数表示测试的个数n;只有n行,每行两个数据a和b(0<a,b<10000)。
Output->如果满足题目的要求输出a+b的值,否则输出NO。


答:实现代码如下:

#include <stdio.h>#include <stdlib.h>int r(int s){    int t=s,sum=0;    while(t) {sum=10*sum+t%10;t/=10;}    return sum;}int main(){    unsigned char n,i;    int a,b;       while(scanf("%d",&n)!=EOF){         for(i=0;i<n;++i)          { scanf("%d %d",&a,&b);           if(r(a)+r(b)!=r(a+b)) printf("NO\n");           else printf("%d\n",a+b);         }                            }    return 0;    }
1 楼 软件开发学习者lilonghui 2012-01-02 或许有个更简单的判断方法: 只要两个数的对应位相加不进位就能满足

读书人网 >互联网

热点推荐