Я решаю этот вопрос.
Это мой код:
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] t = new int[n];
int count = 0;
for (int i = 0; i < n; i++) {
t[i] = sc.nextInt();
if (t[i] % k == 0) {
count++;
}
}
System.out.println(count);
}
}
Но когда я отправляю его, время ожидания истекает. Пожалуйста, помогите мне оптимизировать это настолько, насколько это возможно.
Пример
Вход:
7 3
1
51
966369
7
9
999996
11
Выход:
4
Они говорят :
Ожидается, что вы сможете обрабатывать не менее 2,5 МБ входных данных в секунду во время выполнения.
Модифицированный КОД
Спасибо всем... Я изменил свой код, и он сработал... вот он....
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int n = Integer.parseInt(input[0]);
int k = Integer.parseInt(input[1]);
int count = 0;
for (int i = 0; i < n; i++) {
if (Integer.parseInt(br.readLine()) % k == 0) {
count++;
}
}
System.out.println(count);
}
С уважением
шагенша
int[] t, если вы не используете этот массив для каких-либо полезных вещей здесь? Вместо этого вы могли бы использоватьint t. - person limc   schedule 10.02.2011BufferedReader, как я уже упоминал в ответе, получить первую строку, использоватьString.splitв строке и проанализировать каждый элемент, затем прочитать каждую строку и поместить ее вInteger.parseIntи использовать это в операции по модулю. - person Argote   schedule 10.02.2011