コンソールから大量の数字を読み込み、空白で区切って入力する必要があります。これらは0から10^9までのすべての数字になります。char配列の桁数はJavaの同じ入力で異なります
以下のコードは小さな入力でも動作しますが、ファイルhereのようなデータの場合、間違った結果が表示されます。実行するたびに違います(添付ファイルの場合は968364)。
私は間違っていますか?ループ内でメソッドやクラスを使用することはできません。プリミティブ型で動作する必要がありますが、明らかに何か不足しています。
ご協力いただきありがとうございます。
int input_size = 0;
char[] input = new char[1000000];
InputStreamReader in = new InputStreamReader(System.in);
in.read(input);
for(int a = 0; a<input.length; a++){
if (input[a] >= 48 && input[a] <= 57){
input_size ++;
}
}
System.out.println(input_size);
を終了するまで、それはあなたがわずか1万字を読ん千文字のチャンクで入力を読み込むようにコードを編集したが、あなたの入力ファイルに1,110万文字あるので、入力ファイルの約10%が欠落しています –
はい、修正しましたが、それでも問題は解決しません。 –
私の回答を表示してください。私は正しい出力を得る(968364)。 –