Я понимаю, для чего нужен сканер, а также когда использовать Scanner и BufferedReader. Я читал другой, но в каком-то термине похожий вопрос Scanner vs. BufferedReader
Почему сканер настолько медленный, когда я читаю с ввода? Я предполагаю, что это связано с тем, что в Scanner имеется небольшой буфер, но здесь я потерян. Исходная проблема - от Codechef, но меня это не интересует.
Вот пример кода с данным вводом: Входные данные:
- 7 3
- 1
- 51
- 966369
- 7
- 9
- 999996
- 1
И код
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
int numberOfLines = Integer.parseInt(s[0]);
int divideNumber = Integer.parseInt(s[1]);
int count = 0;
for (int i = 0; i < numberOfLines; i++) {
String number = br.readLine();
if (number.length() < 11) {
int num = Integer.parseInt(number);
if (num % divideNumber == 0) {
count++;
}
}
}
System.out.println(count);
}
}
Если я прочитал один и тот же код со сканером, он будет медленным.