大家都知道,C++判断奇偶数可以用

if (n % 2 == 0)

这样的语句,但, “== 0” 是可以用 “ ! ”代替的

if (!(n % 2))

不过会比较难理解


判断奇偶还有一种方法,写法很短,是笔者最喜欢的一种
类似这样

if (n & 1)

运用按位与的方法
我给大家举个例大家就明白了
比如,一个奇数5,
它的二进制是 (00000101)2
与1按位与的话(1是 (00000001)2),
5 & 1 = (00000101)2 & (00000001)2 = (00000001)2 = 1 = true,毕竟 1 && 1 = 1
而一个偶数 10 也就是 (00001010)2 & 1 的话,
10 & 1 = (00001010)2 & (00000001)2 = (00000000)2 = 0 = false
所以,我们得出了一个结论:奇数 & 1 = 1 = true, 偶数 & 1 = 0 = false

#include <cstdio>
int main() {
    int a = 1, b = 2;
    // a 是奇数,b 是偶数
    if (a & 1) puts("yes");
    else puts("no");
    // 输出 yes
    if (b & 1) puts("yes");
    else puts("no");
    // 输出 no
    return 0;
}

有其他观点的可联系作者以投稿

投稿邮箱:1826543852@qq.com

题目格式:文章题目 + 牛客投稿(就是牛客投稿4个字) + 你的牛客id

投稿请发送Markdown文件(.md)