Реализация оператора modulo как функции в C

Как мы можем реализовать оператор modulo как функцию в C без использования оператора?

Ответ 1

Простой:

Если выражение a/b является представимым, выражение (a/b)*b + a%b должно быть равно a

(стандарт C99, 6.5.5/6).

Ответ 2

Выполняет целочисленное деление с последующим умножением и вычитанием.

#include <stdio.h>
int main()
{
  int c=8, m=3, result=c-(c/m*m);
  printf("%d\n", result);
}

Ответ 3

Здесь вы идете:

a % b = a - (b * int(a/b))

Ответ 4

Вы можете моделировать x % y путем многократного вычитания y из x и отслеживания результата. На каждой итерации, если результат меньше y, тогда у вас есть остаток, и вы можете просто вернуть его.

Ответ 5

Дивиденд/Дивизор = Котировка

Формула (в Python 3) приведена ниже:

Modolus = Divident - Дивиденд //Divisor * Divisor

Например, если Dividend = 5 и Divisor = 2, то

Модуль = 5 - 5//2 * 2, который становится         5 - 2 * 2         5 - 4           1 Помните, что//имеет более высокий приоритет, чем -, поэтому 5//2 сначала оценивается.