目录
- 在C++ 判断一个整数是奇数还是偶数
- 1. 使用模运算符(%)
- 2. 使用位运算(& 1)
- 3. 使用除法运算
- 4. 使用条件运算符(三元运算符)
- 5. 使用标准库函数(C++20 引入的 "std::even" 和 "std::odd")
- 6. 使用递归或循环
- 7. 使用数学性质
- 总结
在C++ 判断一个整数是奇数还是偶数
1. 使用模运算符(%)
这是最直接的方法,通过计算整数除以 2 的余数来判断。
if (num % 2 == 0) {
// 偶数
} else {
// 奇数
}
2. 使用位运算(& 1)
利用整数的二进制表示,奇数的最后一位总是 1,偶数的最后一位总是 0。
if ((num & 1) == 0) {
// 偶数
} else {
// 奇数
}
3. 使用除法运算
通过将整数除以 2 并乘以 2,判断是否与原数相等。
if ((num / 2) * 2 == num) {
// 偶数
} else {
// 奇数
}
4. 使用条件运算符(三元运算符)
这是一种简洁的写法,结合了模运算或位运算。
std::string result = (num % 2 == 0) ? "偶数" : "奇数";
5. 使用标准库函数(C++20 引入的 “std::even” 和 “std::odd”)
C++20 引入了
“” 头文件中的
“std::even” 和
“std::odd” 函数。
#include <numeric>
if (std::even(num)) {
// 偶数
} else {
// 奇数
}
6. 使用递归或循环
虽然不常见,但也可以通过递归或循环来判断奇偶性。
bool isEven(int num) {
if (num == 0) return true;
if (num == 1) return false;
return isEven(num - 2);
}
7. 使用数学性质
利用数学性质,如奇数和偶数的定义。
if (num == 2 * (num / 2)) {
// 偶数
} else {
// 奇数
}
总结
最常用和高效的方法是 模运算(%) 和 位运算(& 1)。位运算通常性能更好,因为它是直接操作二进制位。其他方法更多是出于教学或特定场景的考虑。