九度1089Java版和C版比较

来源:互联网 发布:加工中心刚性攻丝编程 编辑:程序博客网 时间:2024/05/16 06:36
Java版:
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++吧


0 0
原创粉丝点击