Как работает модуль меньшего дивиденда и более крупного дивизора?
7 % 3 = 1 (remainder 1)
как сделать
3 % 7 (остаток?)
работа?
Ответ 1
остаток от 3/7 равен 3. Когда он пошел 0 раз с 3 остатками, так что 3% 7 = 3
Ответ 2
То же самое. Фактор равен 0 (3/7 с отбрасыванием дробной части). Остальное тогда удовлетворяет:
(a / b) * b + (a % b) = a
(3 / 7) * 7 + (3 % 7) = 3
0 * 7 + (3 % 7) = 3
(3 % 7) = 3
Это определено в C99 § 6.5.5, Мультипликативные операторы.
Ответ 3
7 переходит в 3? нулевое время с 3 слева.
равен нулю. Остаток (модуль) равен 3.
Ответ 4
7, деленная на 3, равна 2 с остатком 1
3, деленная на 7, равна 0 с остатком 3
Ответ 5
Пока они оба позитивны, остаток будет равен дивиденду. Если один или оба отрицательны, то вам напомнят, что % - действительно оператор останова, а не оператор модуля. Модуль всегда будет положительным, но остаток может быть отрицательным.
Ответ 6
(7 * 0) + 3 = 3; поэтому остаток 3.
Ответ 7
a% q = r означает, что существует x, так что q * x + r = a.
Итак, 7% 3 = 1, потому что 3 * 2 + 1 = 7,
и 3% 7 = 3, потому что 7 * 0 + 3 = 3
Ответ 8
Концептуально, я думаю об этом так. По определению ваш дивиденд должен быть равен (quotient * divisor) + modulus
Или, решая для модуля: modulus = dividend - (quotient * divisor)
Всякий раз, когда дивиденд меньше дивизора, фактор всегда равен нулю, что приводит к тому, что модуль просто равен дивиденду.