import java.util.Scanner;
public class Main {
public static int reverse(int n){ //对n反转
int rn = 0; //反转后的数字
while(n!=0){
rn = rn * 10 + n%10;
n = n/10;
}
return rn;
}
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
int n,a,b,c;
n = scanner.nextInt();
int i;
int ra,rb,rc;
for(i=0;i<n;i++){
a = scanner.nextInt();
b = scanner.nextInt();
c = a + b; //反转前的数字和
// System.out.println("c:" + c);
ra = reverse(a);
// System.out.println("ra:" + ra);
rb = reverse(b);
// System.out.println("rb:" + rb);
rc = ra + rb;
// System.out.println("rc:" + rc);
if(reverse(c) == rc){ //和的反转 = 反转的和
System.out.println(c);
}else {
System.out.println("NO");
}
}
}
}
注意:
1、提交了好多次都是Wrong,一直不知道什么原因,最后发现了,一定要注意中间自己的输入注释掉啊 现在又开始犯这样子的错误了
2、还有,java自己在本地写的时候如何有包名,一定记得提交的时候去掉
3、类的名字
C版
#include<stdio.h>
int reverse(int n){ //求数字n的反转数字
int rn=0;
while(n){
rn = rn*10 + n%10;
n = n/10;
}
return rn;
}
int main(){
int n;
scanf("%d",&n);
int a,b,c;
int i;
for(i=0;i<n;i++){
scanf("%d%d",&a,&b);
c = a + b;
if(reverse(c) == reverse(a) + reverse(b)){
printf("%d\n", c);
}else{
printf("NO\n");
}
}
}
结果比较:
一样的思路,只是换了一个语言,这差距。。。对java技术和算法不是很自信的同学,在做ACM或者九度或者考研机试的时候,如果有时间和内存限制,还是使用C或C++吧