网站首页 > 技术文章 正文
在编程的过程中,我们经常会遇到判断偶数的地方,比如列表判断偶数位置加个背景等等。以前我一直以为判断偶数就两种方式,直到看了网上的各路大佬,我才发现判断偶数原来还可以这么玩,简直是让我“惊喜连连”呀。下面就来一一介绍,其中前两种也是最容易想到,也是用得最多的方式。
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到底算奇数还是偶数呢?
惊不惊喜,意不意外,简简单单一个奇偶数的判断,都能玩出花儿来,有时候想想,写代码也没那么枯燥,当你想找点乐子时,大佬们总会带点惊喜让你高兴高兴。
- 上一篇: 送你个使用锦囊,防止蓝牙耳机被“策反”
- 下一篇: 人工智能入门算法逻辑回归学习笔记
猜你喜欢
- 2024-10-22 梅花易数,原来是这么来的 梅花易数的本质
- 2024-10-22 根据云计算下医疗保健,其优先级变化,会对调度技术造成什么影响
- 2024-10-22 麻将玩法新手教学,“雀神”成长之路,麻将有趣的未知性
- 2024-10-22 每日算法LeetCode120:三角形最小路径和(难度系数1/5)
- 2024-10-22 基于深度残差收缩网络和优化BiLSTM的轴承剩余寿命预测方法
- 2024-10-22 人工智能入门算法逻辑回归学习笔记
- 2024-10-22 送你个使用锦囊,防止蓝牙耳机被“策反”
- 2024-10-22 封面文章 | 基于自适应多分辨率分析的电动拖拉机驱动功率分配策略
- 2024-10-22 狮群优化核极限学习机的分类算法 狮群调整战术
你 发表评论:
欢迎- 11-18软考系统分析师知识点十六:系统实现与测试
- 11-18第16篇 软件工程(四)过程管理与测试管理
- 11-18编程|实例(分书问题)了解数据结构、算法(穷举、递归、回溯)
- 11-18算法-减治法
- 11-18笑疯了!巴基斯坦首金!没有技巧全是蛮力!解说:真远啊!笑死!
- 11-18搜索算法之深度优先、广度优先、约束条件、限界函数及相应算法
- 11-18游戏中的优化指的的是什么?
- 11-18算法-分治法
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)