模运算(取余运算)是编程中的基础运算,使用符号 % 表示
模运算(取余运算)是编程中的基础运算,使用符号 % 表示。
基本概念
模运算返回两个数相除后的余数。
结果 = 被除数 % 除数
基本示例
10 % 3 = 1 // 10÷3=3余1
15 % 4 = 3 // 15÷4=3余3
20 % 5 = 0 // 20÷5=4余0
7 % 10 = 7 // 7÷10=0余7
在你的代码中的应用
if ( n++ %2 )
这里 n % 2 用来判断n的奇偶性:
n % 2 == 1→ n是奇数n % 2 == 0→ n是偶数
执行过程:
n=1: 1%2=1 (真,执行第一个分支)
n=2: 2%2=0 (假,执行第二个分支)
n=3: 3%2=1 (真,执行第一个分支)
n=4: 4%2=0 (假,执行第二个分支)
n=5: 5%2=1 (真,执行第一个分支)
常见应用场景
1. 判断奇偶数
if (num % 2 == 0) {
printf("偶数");
} else {
printf("奇数");
}
2. 循环控制
for (int i = 0; i < 10; i++) {
if (i % 3 == 0) {
printf("能被3整除: %d\n", i);
}
}
// 输出: 0, 3, 6, 9
3. 数组索引循环
int colors[] = {RED, GREEN, BLUE};
int colorIndex = step % 3; // 始终在0,1,2之间循环
4. 时间计算
int hour = totalMinutes % 60; // 分钟数
int day = totalHours % 24; // 小时数
int weekday = totalDays % 7; // 星期几
5. 哈希表索引
int index = hash(key) % tableSize; // 确保索引在表范围内
特殊情况
负数的模运算
-7 % 3 = -1 // 在C语言中
-7 % 3 = 2 // 在Python中(不同语言可能不同)
浮点数
// C语言中模运算只能用于整数
fmod(7.5, 2.3) // 浮点数取余需要使用fmod函数
性能优化技巧
对于2的幂次方,可以用位运算替代:
n % 2 ≡ n & 1 // 判断奇偶
n % 4 ≡ n & 3 // 取模4
n % 8 ≡ n & 7 // 取模8
模运算是控制程序流程、实现周期性行为的重要工具,在你的代码中正是利用了这个特性来实现函数行为的交替变化。

浙公网安备 33010602011771号