EOF
のJava
まで入力の読み取りに問題があります。ここでは、単一の入力があり、出力は各行の入力を考慮します。
例:
入力:
1
2
3
4
5
出力:
0
1
0
1
0
ただし、Javaを使用してコーディングしているため、2つの数値を入力したときに1つの出力が出力されます。 JavaでEOF
を使用して、各行に単一の入力と単一の出力を出力します(BufferedReader
を終了します)。
これは私のコードです:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
StringBuffer pr = new StringBuffer("");
String str = "";
while((str=input.readLine())!=null && str.length()!=0) {
BigInteger n = new BigInteger(input.readLine());
}
で行を消費していますが、これは破棄されます
_while((str=input.readLine())!=null && str.length()!=0)
_
とでbigintを読んで
_BigInteger n = new BigInteger(input.readLine());
_
だからとして読み取られる文字列からbigintを取得してみてください
_BigInteger n = new BigInteger(str);
Constructor used: BigInteger(String val)
_
また、while((str=input.readLine())!=null && str.length()!=0)
を
_while((str=input.readLine())!=null)
_
関連する bigintへの文字列の投稿 を参照
_readLine()
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
_
javadocs を参照してください
テキストファイルの場合、BufferedReader.read()を1文字ずつ使用する場合、EOFは-1です。BufferBuffer.readLine()!= nullでテストを行い、正常に動作しました。