【C++练习】03.判断一个整数是奇数还是偶数

目录

  • 在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)。位运算通常性能更好,因为它是直接操作二进制位。其他方法更多是出于教学或特定场景的考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值