Я пытаюсь найти наибольший модуль в списке.
Это мой код на данный момент:
import java.util.*;
public class p2 {
public static void main(String[] args) {
ArrayList<Integer> ar = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
for(int i = 1; i <= n; i++) {
int mod = i % m;
ar.add(mod);
}
System.out.println(Collections.max(ar));
}
}
Например
5 3
Выход будет 2
потому что наибольшее значение по модулю от 1-5 при делении на 3 равно 2
Есть ли более быстрый способ сделать это без применения грубой силы?




Из всех чисел в диапазоне 1-n наибольшим модулем с m является m - 1, кроме n < m, в этом случае это n, поэтому:
int maxModulo = Math.min(n, m-1);
Вышеизложенное, конечно, предполагает, что n >= 1 и m >= 1.