Как найти наибольшее по модулю в данном - PullRequest
0 голосов
/ 25 апреля 2018

Что я пытаюсь сделать, так это найти самое большое по модулю в списке

Это мой код:

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 Ответ

0 голосов
/ 25 апреля 2018

Из всех чисел в диапазоне 1-n наибольшее по модулю значение m равно m - 1, за исключением случаев, когда n < m, в этом случае n, поэтому:

int maxModulo = Math.min(n, m-1);

Выше, конечно, предполагается, что n >= 1 и m >= 1.

...