0

http://www.codechef.com/problems/LASTDIGで問題を提出すると、実行時エラーが発生し続けます。

私のコードは次のとおりです。

public class Main {
    public static void main(String[] args) {
        try {
            Scanner in = new Scanner(System.in);
            int i,j;
            System.out.println("Enter the no. of test cases - ");
            int cases = in.nextInt();

            int[][] a = new int[cases][2];
            int[] lds = new int[cases]; 

            for(i=0; i<cases; i++) {
                for(j=0; j<2; j++) {
                    a[i][j]=in.nextInt();
                }
            }

            for(j=0; j<cases; j++) {
                lds[j] = 0;
                int LENGTH = a[j][1] - a[j][0] +1;
                int[] arr = new int[LENGTH];
                //System.out.printf("%d\n",LENGTH);
                int[]sum = new int[LENGTH];

                for(i=0; i<LENGTH; i++) {
                    sum[i] = 0;
                    arr[i] = a[j][0] + i;
                }

                for(i=0; i<LENGTH; i++) {
                    int temp = arr[i];
                    while(temp !=0 ) {
                        int r = temp%10;
                        temp /= 10;

                        if (r%2 == 0) sum[i] += r*2;
                        else sum[i] += r;
                    }
                }

                for(i=0; i<LENGTH; i++){
                    lds[j] += sum[i]%10;
                }

            }

            for(i=0; i<cases; i++) {
                System.out.printf("%d\n",lds[i]);
            }
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

この問題は簡単なので、ここで私を助けてください。

ありがとう !

4

1 に答える 1

0

コード自体は正常に実行されます...適切な入力が与えられている場合。入力が異なると、次のようなエラーが発生する可能性があります。

  1. ケースが整数でない場合はどうなりますか?
  2. ケースが負の整数の場合はどうなりますか?

そのため、編集が達成しようとするとき、予期しないユースケースについて賢明なフィードバックを提供する必要があります。

しかし、リンクの問題については、他の潜在的な問題があります。オーバーフロー?2^32 は最大数よりも大きいですが、整数が大きいと OutOfMemory エラーが発生する可能性があることに気付きました。より大きな整数を処理するアルゴリズム。

于 2014-01-10T18:01:23.597 に答える