互聯網公司面試題之三

問題: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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章