计算机系统应用教程网站

网站首页 > 技术文章 正文

判断偶数的方式这么多,总有一种能让你感到意外

btikc 2024-10-22 10:26:25 技术文章 8 ℃ 0 评论

在编程的过程中,我们经常会遇到判断偶数的地方,比如列表判断偶数位置加个背景等等。以前我一直以为判断偶数就两种方式,直到看了网上的各路大佬,我才发现判断偶数原来还可以这么玩,简直是让我“惊喜连连”呀。下面就来一一介绍,其中前两种也是最容易想到,也是用得最多的方式。

1.二进制法

我们都知道计算机中的数字都是二进制来表示,各位上的数字不是0就是1,比如5的二进制是101,6是110,7是111,8是1000等等,在此就不一一列举了。我们发现列举的这4个数有一个特点,奇数的最后一位是1,偶数的最后一位是0,利用这个特点很容易就能判断了,代码实现如下

public boolean isEven(int number) {
    return (number & 1) == 0;
}

2.取余法

上学时我们学过,能被2整除的数就是偶数,不能整除的就是奇数。所以我们可以判断一个数除以2取余,看余数是1还是0,这样也能判断,代码实现如下

public boolean isEven(int number) {
    return number % 2 == 0;
}

这两种方式在我们的日常开发中是用得最多的,也是最容易理解的,下面几种方式一般人还真不一定能想到,在此让大家开开眼界,看看有没有哪种方式能让你感到“惊喜”。

3.遍历法

很难想到判断个偶数还能用到遍历法吧,究竟是遍历谁,怎么遍历呢?说是遍历法,我觉得叫数数法更好理解吧,啥意思呢?还记得刚学数数的经历吗,比如1,2,3……,判断奇偶数也可以这样数,比如从0开始就是偶,奇,偶,奇……,代码实现如下

public boolean isEven(int number) {
    boolean result = true;
    for (int i = 0; i < number; i++) result = !result;
    return result;
}

看到这个遍历法,让我想起了一个“经典”的排序算法,睡眠排序法,在此不作解释,懂得人应该都懂,这两个放在一起,堪比卧龙凤雏,睡眠排序法示例如下

4.截取法

我们都知道一个数的个位,若是0,2,4,6,8时,则这个就是偶数,否则就是奇数。你要这么说也还行,整除10取余判断一下就可以了,不过这跟截取有啥关系呢,为啥叫截取法呢?我想象一下发明这种方法的大佬内心独白:你要整除?整除了还要取余?怎么取余?搞这么复杂干什么,字符串截取不会吗,直接截取最后一位就行了,哪有那么复杂。示例如下

5.穷举法

没错,判断奇偶数也能穷举,你有多少个场景我就穷举多少个。额……实在编不下去了,为什么要用穷举,各位大佬能理解他为什么要用穷举吗?看这截图,0到底算奇数还是偶数呢?

惊不惊喜,意不意外,简简单单一个奇偶数的判断,都能玩出花儿来,有时候想想,写代码也没那么枯燥,当你想找点乐子时,大佬们总会带点惊喜让你高兴高兴。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表