Как работает модуль меньшего дивиденда и более крупного дивизора?

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)

Всякий раз, когда дивиденд меньше дивизора, фактор всегда равен нулю, что приводит к тому, что модуль просто равен дивиденду.

Чтобы проиллюстрировать значения OP:

modulus of 3 and 7 = 3 - (0 * 7) = 3

Чтобы проиллюстрировать другие значения:

1 % 3:
1 - (0 * 3) = 1

2 % 3:
2 - (0 * 3) = 2