`
YuHuang.Neil
  • 浏览: 180722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

互联网公司面试题之三

阅读更多
问题: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  
或许有个更简单的判断方法: 只要两个数的对应位相加不进位就能满足

相关推荐

Global site tag (gtag.js) - Google Analytics