0

私は現在、スフィア オンライン ジャッジ ( http://www.spoj.pl/problems/PRIME1/ ) からのプライム ジェネレーターの問題を解決しようとしています。

コアの問題はすでに解決されています。私が直面している問題は、入力を読み取るときに、最初の 2 行を正しく読み取り、3 行目を読み取るために Enter キーを押す必要があることです。ソリューションの評価。Enterキーを押さなくても入力全体を読み取る方法があるかどうかを知りたいです。

これが入力と出力です

入力:

2
1 10
3 5

出力:

2
3
5
7

3
5

ここに私のコードがあります

class Solucion_Prime_Generator {

    public static void main(String[] args) throws NumberFormatException,
            IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(reader.readLine());
        for(int i=0;i<t;i++) 
        {
            String numbers = reader.readLine();             
            System.out.println(numbers);
            String[] numberArray = numbers.split(" ");
            for (int j = Integer.parseInt(numberArray[0]); j <= Integer.parseInt(numberArray[1]); j++)
            {
                if(isPrime(j)){

                    System.out.println(j);
                }
            }
            System.out.println(" ");
        }
    }

    public static boolean isPrime(int n)
    {

        if( n==1)
        {
            System.out.println();
            return false;
        }
        if(n==2)
        {
            return true;
        }
        if(n%2==0){
            return false;
        }
            for (int i = 3; i*i <= n; i+=2) 
            {

            if(n%i==0)
            {               
                return false;
            }

        }

        return true;
    }

}
4

3 に答える 3

0

ファイルの最後の行で問題が発生していると思いますね。この場合、最後の行は 3 行目です。おそらく、これはファイルの最後の行であり、キャリッジ リターンや改行はありません。

tjg84 が指摘したように、readLine() は、改行または改行、またはその両方で行が終了することを期待しています。したがって、考えられる解決策は 2 つあります。 - 最後の行の最後に改行/改行を挿入します。- 別の方法を使用して行を読み取ります。おそらく、 Scanner クラスのメソッド nextLine()を使用できます。

于 2012-06-13T17:40:29.757 に答える
0

エンターを押すまで、それは行ではありません。行の入力が完了したことをどのように認識しますか?

于 2012-06-13T17:35:00.007 に答える
0

何を達成しようとしているのかを正確に伝えるのは少し難しいですが、readLine() メソッドはキャリッジ リターンまたはラインフィード、あるいはその両方で終了する必要があります。

これを参照してください:

http://docs.oracle.com/javase/1.3/docs/api/java/io/BufferedReader.html#readLine ()

于 2012-06-13T17:35:31.420 に答える