Оператор модуля C # - PullRequest
       1

Оператор модуля C #

19 голосов
/ 07 августа 2010

Я могу написать программу

int a = 3;
int b = 4;

Console.WriteLine(a % b);

Ответ, который я получаю - 3. Как 3 мода 4 = 3 ???

Я не могу понять, как это вычисляется таким образом.

Ответы [ 7 ]

52 голосов
/ 07 августа 2010

Я не совсем знал, чего ожидать, но я не мог понять, как остаток был 3.

Итак, у вас есть 3 куки, и вы хотите разделить их поровну между 4 людьми.

Поскольку людей больше, чем файлов cookie, никто не получает файл cookie ( частное = 0), и вы получаете остаток из 3 файлов cookie для себя. :)

49 голосов
/ 07 августа 2010

Потому что остаток от 3/4 = 3.

http://en.wikipedia.org/wiki/Modulo_operator

Если вы не можете понять, почему остаток равен 3, у нас есть более серьезных проблем здесь.

16 голосов
/ 07 августа 2010

3 mod 4 - это остаток, когда 3 делится на 4.

В этом случае 4 переходит в 3 нулевых раза с остатком 3.

2 голосов
/ 11 октября 2013

Как объяснили другие, но если вы не хотите использовать оператор "мод".Вот уравнение для вычисления остатка от «а», деленное на «п»

a-(n* int(a/n))

1 голос
/ 05 февраля 2013

я уже думаю, что пользователь, возможно, понял ответы .. потому что есть очень много хороших программистов .. в простой формулировке % сообщает вам напоминание после деления с вашим собственным целым числом.

например,

int a = int.parse(console.readline());
int b = a % 2;

теперь вы вводите 13, это даст 1, потому что после погружения 13 на 2 остаток равен 1 в простой математике.Надеюсь, ты это понял.

0 голосов
/ 19 сентября 2018

Я нашел ответ, сбивающий с толку и вводящий в заблуждение .....

Модуль - это то, что осталось в ПЕРВОМ НОМЕРЕ после деления второго на него столько раз, сколько возможно.

1 % 1 = 0 because after dividing 1 into 1, one time, there's nothing left
2 % 1 = 0 because after dividing 1 into 2, two times, there's nothing left
1 % 2 = 1 because 2 won't go into 1, so 1 is left
0 голосов
/ 11 июля 2014

Еще один «как объяснили другие», но если вам любопытно еще несколько способов сделать модуль (или использовать альтернативный метод), вы можете прочитать эту статью, которая сравнивает несколько различных способов .

По сути, самый быстрый способ - это старый добрый оператор модуля, похожий на:

if (x % threshold == some_value)
{
    //do whatever you need to
}
...