模运算与奇偶数判断

模运算
如果N整除 A - B,那么我们就说A与B模N同余(congruent),记为 A B ( m o d N ) A \equiv B\pmod{N} 直观地看,这意味着无论A还是B被N去除,所得余数都是相同的。于是, 81 61 1 ( m o d N ) 81 \equiv 61 \equiv 1\pmod{N} 。如同等号的情形一样,若 A B ( m o d N ) A \equiv B\pmod{N} ,则 A + C B + C ( m o d N ) A+C \equiv B+C \pmod{N} 以及 A D B D ( m o d N ) AD \equiv BD \pmod{N}
有许多的定理适用模运算,其中有一些特别要用到数论来证明。我们将谨慎地使用模运算。

奇偶数判断
1.最高效的办法,位运算法

int
isUnEven(long int X)
{
	return X&1;
}

int
isEven(long int X)
{
	return ~(X&1);
}

/* 参数化的宏法 */
#defien isUnEven(X) ((X)&(1))
#defien isEven(X) (~((X)&(1)))

2. 取模法

int
isUnEven(long int X)
{
	return X%2;
}

int
isEven(long int X)
{
	return !(X%2);
}

/* 参数化的宏法 */
#defien isUnEven(X) ((X)%(2))
#defien isEven(X) (!((X)%(2)))
发布了39 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42820594/article/details/103973278