0

この問題をJAVAで解決しようとしています。しかし、入力を文字列として読み込んで Int に解析すると、実行時エラーが表示されます... (コードはコメントアウトされています)

次に、 nextInt() メソッドを使用して入力をロードすると、実行時エラーが表示されなくなりました。

出力を次のように変更した後

System.out.println(arr3[0]+" "+arr3[1]+" "+now);

結果は受理されました。

それで...私の以前のコードの何が問題になっていますか? 私のコンピューターでは問題ないように見えますが、UVA オンライン ジャッジでは常に実行時エラーが発生します。みんなありがとう〜

import java.io.*;
import java.util.*;
import java.lang.*;

class Main {

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in) ;

    while(sc.hasNext()){
        int now = 0;
    //  String str = sc.nextLine();
    //  String[] arr = str.split(" ");
    //  arr2[1] = Integer.parseInt(arr[1]);
    //  arr2[0] = Integer.parseInt(arr[0]);
        int[] arr2 = new int[2];
        int[] arr = new int[2];
        arr[0] = arr2[0] = sc.nextInt();
        arr[1] = arr2[1] = sc.nextInt();    


        int tmp;
        if(arr2[0]>arr2[1]){
            tmp = arr2[0];
            arr2[0] =arr2[1];
            arr2[1] = tmp;  
        }

        for (int i = arr2[0]; i < arr2[1]+1; i++) {
            long a = i;
            int count = 0;

            while (a != 1) {

                count++;
                if ((a % 2) != 0) 
                    a = 3 * a + 1;
                else 
                    a = a / 2;
            }
            count++;

            if (count > now) 
            now = count;
        }

        System.out.println(" "+now);
    }
}
4

1 に答える 1

1
于 2013-09-24T08:48:20.787 に答える