取模运算:a % p(或a mod p),表示a除以p的余数。
比如给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。
取模运算的规则如下:
1、(a + b) % p = (a % p + b % p) % p 。
2、(a - b) % p = (a % p - b % p) % p 。
3、(a * b) % p = (a % p * b % p) % p 。
4、a ^ b % p = ((a % p)^b) % p 。
扩展资料:
取模运算在c语言中的应用范围:
1、判别奇偶数
奇偶数的判别是模运算最基本的应用,也非常简单。已知一个整数n对2取模,如果余数为0,则表示n为偶数,否则n为奇数。
2、判别素数
一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)。例如 2,3,5,7 是质数,而 4,6,8,9 则不是,后者称为合成数或合数。用不比该自然数的平方根大的正整数去除这个自然数,若该自然数能被整除,则说明其非素数。
3、求最大公约数
求最大公约数最常见的方法是欧几里德算法(又称辗转相除法),其计算原理依赖于定理:gcd(a,b) = gcd(b,a mod b)。
参考资料来源:百度百科:取模运算
取模运算符是% ,对负数取模不一定都是正数。
例如:
例一:int main(){
int x;
x = -6%5; printf("%2d/n",x);
x = 6%-5; printf("%2d/n",x);
x = 1%-5; printf("%2d/n",x);
x = -1%-5; printf("%2d/n",x);
x = -6%-5; printf("%2d/n",x);
}
运行结果为:-1、1 、1 、-1、 -1
例二:#include <stdio.h>int main()
{
int x;
x = 5%-6;
printf("%2d/n",x);
x = 5%-6; printf("%2d/n",x);
x = -5%6; printf("%2d/n",x);
x = 4%5; printf("%2d/n",x);
x = -4%-5; printf("%2d/n",x);
x = -5%-6; printf("%2d/n",x);
}
运行结果为:5、-5 、 4、-4、-5
扩展资料:
取模运算运算规则:
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
(a + b) % p = (a % p + b % p) % p
(a - b) % p = (a % p - b % p) % p
(a * b) % p = (a % p * b % p) % p
a ^ b % p = ((a % p)^b) % p
结合律:
((a+b) % p + c) % p = (a + (b+c) % p) % p
((a*b) % p * c)% p = (a * (b*c) % p) % p
交换律:
(a + b) % p = (b+a) % p
(a * b) % p = (b * a) % p
分配律:
(a+b) % p = ( a % p + b % p ) % p
((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p
参考资料:
取模运算:a % p(或a mod p),表示a除以p的余数。
比如给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。
取模运算的规则如下:
1、(a + b) % p = (a % p + b % p) % p 。
2、(a - b) % p = (a % p - b % p) % p 。
3、(a * b) % p = (a % p * b % p) % p 。
4、a ^ b % p = ((a % p)^b) % p 。
扩展资料:
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
(a + b) % p = (a % p + b % p) % p (1)
(a - b) % p = (a % p - b % p) % p (2)
(a * b) % p = (a % p * b % p) % p (3)
a ^ b % p = ((a % p)^b) % p (4)
结合律:
((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
((a*b) % p * c)% p = (a * (b*c) % p) % p (6)
交换律:
(a + b) % p = (b+a) % p (7)
(a * b) % p = (b * a) % p (8)
分配律:
(a+b) % p = ( a % p + b % p ) % p (9)
((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p (10)
参考资料:百度百科-取模运算
取模运算:x % y(或x mod y),表示x除以y的余数。
取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。
取模主要是用于计算机术语中。取余则更多是数学概念。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。
当存在负数时: x%y
1、当异号时:
if |x|>|y|
result: x+y
else
result: x
2、当同号时:
if |x|>|y|
result: x-y
else
result: x
扩展资料:
当x、y都是正整数时,例:
5%3等于2,
3%5等于3
当x、y异号时,例:
-6% 5等于-1
6%-5等于 1
5%-6等于 5
-5% 6等于-5
当x、y同号时,例:
-1%-5等于-1
-6%-5等于-1
-4%-5等于-4
-5%-6等于-5
参考资料:百度百科—取模运算
取模运算符“%”的作用是求两个数相除的余数。例如,请看下面这段代码:
x=15/7;
如果x是一个整数,x的值将为2。然而,如果用取模运算符代替除法运算符"/",得到的结果就不同了:
X=15%7;
这个表达式的结果为15除以7的余数,等于1。这就是说,15除以7得2余1。
取模运算符通常用来判断一个数是否被另一个数整除。例如,如果你要打印字母表中序号为3的倍数的字母,你可以使用下面这段代码:
int x;
for(x=1; x<=26; x++)
if((x%3)==0)
printf("%c"; x+64);
上例将输出字符串"cfilorux",即字母表中序号为3的倍数的所有字母。
取模运算余数的定义:当被除数不够整除时余下的数。
当都是正整数时:
除法实际可转化为减数,不够减时剩下的就是余数。
例如:12%5
12-5-5
2
当存在负数时: x%y
i. 当异号时:
if |x|>|y|
result: x+y
else
result: x
例:
-6% 5等于-1
6%-5等于 1
5%-6等于 5
-5% 6等于 -5
ii. 当同号时:
if |x|>|y|
result: x-y
else
result: x
例:
-1%-5等于-1
-6%-5等于-1
-4%-5等于-4
-5%-6等于-5