Деление по модулю, когда первое число меньше второго
Я прошу прощения, если это простой вопрос, но у меня возникли проблемы с пониманием концепции деления модуля, когда первое число меньше второго числа. Например, когда 1 % 4 в моей книге говорит, что остаток равен 1. Я не понимаю, как 1 является остатком 1 % 4. 
 1 / 4 составляет 0,25. Я неправильно думаю о делении модуля? 
6 ответов
во-первых, в Java % является оператором остатка (не по модулю), который имеет немного другую семантику.
Тем не менее, вам нужно думать в терминах только целочисленного деления, как будто нет дробных значений. Подумайте об этом как о хранении элементов, которые нельзя разделить: вы можете хранить нулевые элементы размера 4 в хранилище общей емкости один. Оставшаяся емкость после хранения максимального количества элементов равна единице. Аналогично, 13%5 равно 3, так как вы можете поместить 2 полных элемента размера 5 в хранилище размера 13, а остальная емкость 13 - 2*5 = 3.
другой способ думать об этом как о представлении вашего числа в кратных другого числа. Т. е. a = n*b + r, где b>r>=0. В этом смысле ваш случай дает 1 = 0*4 + 1. (edit: говоря только о положительных числах)
Я собираюсь добавить более практический пример к тому, что уже сказал" Жан-Бернар Пеллерен".
правильно, что если вы делите 1 на 4, Вы получаете 0, но почему, когда вы делаете 1% 4, у вас есть 1 в результате?
в основном это потому, что это:
n = a / b (integer), and
m = a % b = a - ( b * n )
и
 a    b    n = a/b  b * n  m = a%b
 1    4      0        0      1    
 2    4      0        0      2
 3    4      0        0      3
 4    4      1        0      0
 5    4      1        4      1
вывод: в то время как A
Я думаю, вы путаете между %(Remainder) и /(Division) операторы.
когда вы говорите %, вам нужно продолжать делить дивиденд, пока вы не получите остаток 0 или возможный конец. И то, что вы получаете в конце концов, называется Remainder.
когда вы говорите /, вы разделите дивидендов до делителя будет 1. И конечный продукт, который вы получаете, называется Quotient
еще один хороший метод, чтобы прояснить ситуацию, В модуле, если первое число > второго числа вычесть второе число из первого по первое число меньше второго.
17 % 5 = ?
17 - 5 = 12
12 % 5 = ?
12 - 5 = 7
7 % 5 = ?
7 - 5 = 2
2 % 5  = 2
поэтому 17 % 5, 12 % 5, 7 % 5 все дают ответ 2. Это связано с тем, что 2 / 5 = 0 (при работе с целыми числами) с 2 в качестве остатка.
