17

我们如何在不使用运算符的情况下将模运算符实现为 C 中的函数?

4

5 回答 5

40

进行整数除法,然后进行乘法和减法。

#include <stdio.h>
int main()
{
  int c=8, m=3, result=c-(c/m*m);
  printf("%d\n", result);
}
于 2010-04-18T03:21:31.513 回答
18

干得好:

a % b = a - (b * int(a/b))
于 2010-04-18T03:21:34.507 回答
7

x % y您可以通过反复减去并跟踪结果y来进行模拟。x在每次迭代中,如果结果小于y,那么您有余数,并且可以返回它。

于 2010-04-18T03:23:20.310 回答
4

简单的:

如果商a/b是可表示的,则表达式(a/b)*b + a%b应等于a

(C99 标准,6.5.5/6)。

于 2010-04-18T03:23:23.270 回答
1

股息/除数=商

公式(在 Python 3 中)如下:

模数 = Divident - Dividend // 除数 * 除数

例如,如果股息 = 5,除数 = 2,那么

模数 = 5 - 5 // 2 * 2 变为 5 - 2 * 2 5 - 4 1 请记住 // 的优先级高于 -,因此首先计算 5 // 2。

于 2015-11-01T16:49:08.637 回答