/
Вопросы и ответы
/
Java
/

Как работает остаток от деления java

Как работает остаток от деления java

5 лет назад

Человек-Молекула

Ответы

1

Остаток от деления - это целое число, полученное в результате операции деления с остатком. Если остаток от деления равен, то число делится на делитель нацело. В Java остаток от деления одного числа на другое можно получить при помощи оператора %

1
2
System.out.println(3 % 2); // => 1
System.out.println(4 % 2); // => 0

Рассмотрим работу оператора на примере. Поделим число 78 на 33. При делении мы получим неполное частное 2 и остаток от деления. Чтобы убедиться в правильности результата, нужно неполное частное умножить на делитель и прибавить остаток от деления:

1
33 * 2 + 12 = 78

5 лет назад

Maksim Litvinov

1

В Java оператор остатка от деления (%) возвращает остаток от целочисленного деления двух чисел. Рассмотрим работу этого оператора на примерах.

Примеры работы оператора остатка от деления в Java:

  1. Пример с целыми числами:
1
2
3
4
5
6
7
8
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        int result = a % b;
        System.out.println("Остаток от деления " + a + " на " + b + " равен " + result);
    }
}

Результат:

1
Остаток от деления 10 на 3 равен 1
  1. Пример с отрицательными числами:
1
2
3
4
5
6
7
8
public class Main {
    public static void main(String[] args) {
        int x = -10;
        int y = 3;
        int result = x % y;
        System.out.println("Остаток от деления " + x + " на " + y + " равен " + result);
    }
}

Результат:

1
Остаток от деления -10 на 3 равен -1

Оператор остатка от деления % возвращает остаток от целочисленного деления левого операнда на правый операнд.

В первом примере 10 % 3 возвращает остаток от деления 10 на 3, который равен 1.

Во втором примере -10 % 3 возвращает остаток от деления -10 на 3, который равен -1. Остаток от деления сохраняет знак левого операнда.

Оператор остатка от деления полезен, например, для проверки четности числа (если a % 2 == 0, то a - четное число) или при работе с повторяющимися последовательностями.

3 года назад

Maksim Litvinov

0

Остаток от деления в Java возвращает оператор %:

1
2
3
System.out.println(17 % 5);  // 2, потому что 17 = 5 * 3 + 2
System.out.println(10 % 2);  // 0 — делится без остатка
System.out.println(3 % 7);   // 3 — делимое меньше делителя

Отрицательные числа

Знак остатка совпадает со знаком делимого — левого числа:

1
2
System.out.println(-17 % 5);  // -2
System.out.println(17 % -5);  // 2

Если нужен остаток всегда от 0 до делителя, используйте Math.floorMod():

1
System.out.println(Math.floorMod(-17, 5));  // 3

Это важно, например, при расчёте дня недели или индекса в кольцевом массиве.

Дробные числа

% работает и с double:

1
System.out.println(5.5 % 2);  // 1.5

Деление на ноль

Для целых чисел x % 0 бросает ArithmeticException: / by zero. Для double результат — NaN.

Где пригодится

1
2
3
4
boolean isEven = n % 2 == 0;     // чётное ли число
int lastDigit = n % 10;          // последняя цифра
boolean divisible = n % 3 == 0;  // делится ли на 3
int index = i % array.length;    // ходить по массиву по кругу

Сумма цифр числа:

1
2
3
4
5
6
7
int n = 1234;
int sum = 0;
while (n > 0) {
    sum += n % 10;  // берём последнюю цифру
    n /= 10;        // отбрасываем её
}
System.out.println(sum);  // 10

Целая часть от деления

Для целых чисел / отбрасывает дробную часть:

1
System.out.println(17 / 5);  // 3

Вместе / и % дают полный результат деления с остатком: 17 / 5 = 3, остаток 2.

Арифметику в Java разбирают в бесплатном курсе «Основы Java».

17 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845