(和之前一样,初学者只需学习红色字体即可)
1. 取模运算
1.1 【%】的基本概念
取模运算符(%)用于计算两个数相除后的余数。其语法形式为 a % b,其中 a 是被除数,b 是除数。结果的符号与被除数 a 的符号一致。
1.2 运算的规则
- 当 a 和 b 均为正数时,结果为 a 除以 b 的余数。
- 当 a 为负数时,结果为 a 除以 b 的余数,但符号与 a 相同
- 当 b 为负数时,结果与 b 为正数时相同。
示例:
int x = 10 % 3; // 结果为 1
int y = -10 % 3; // 结果为 -1
int z = 10 % -3; // 结果为 1
1.3 取模运算的应用场景
判断奇偶性:通过 n % 2 是否为 0 判断 n 是否为偶数。
if (n % 2 == 0) {
// n 是偶数
}
循环周期性操作:例如,循环遍历数组时,使用取模实现循环索引。
int index = current_index % array_size;
数字拆分:提取数字的某一位。
int last_digit = number % 10; // 获取个位数
注意:
- 除数 b 不能为 0,否则会导致运行时错误(除以零异常)。
- 取模运算仅适用于整数类型(int、long 等),浮点数需使用 fmod 函数。
- 结果的符号可能因编译器实现不同而有所差异(C++11 标准已统一行为)。
2. 进阶:
2.1浮点数取模运算
对于浮点数,需使用 <cmath> 中的 fmod 函数:
#include <cmath>
double result = fmod(10.5, 3.2); // 结果为 10.5 – 3*3.2 = 0.9
代码示例
以下是一个完整的示例,展示取模运算的多种用法:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
// 整数取模
cout << "10 % 3 = " << 10 % 3 << endl;
cout << "-10 % 3 = " << -10 % 3 << endl;
cout << "10 % -3 = " << 10 % -3 << endl;
// 判断奇偶性
int num = 7;
if (num % 2 == 0) {
cout << num << " is even." << endl;
} else {
cout << num << " is odd." << endl;
}
// 浮点数取模
double a = 10.5, b = 3.2;
cout << "fmod(10.5, 3.2) = " << fmod(a, b) << endl;
return 0;
}
输出结果:
10 % 3 = 1
-10 % 3 = -1
10 % -3 = 1
7 is odd.
fmod(10.5, 3.2) = 0.9
(作者前两天经历了第一次分手,调整了一段时间,不多说了,还得继续学习)
评论前必须登录!
注册