目录
一.写在开头
给大家展示十二种奇偶性判断方法
这里全部以易语言为示例,可以迁移到其他编程语言
其他语言可以参照着进行
我们这里写windows控制台
![](https://i-blog.csdnimg.cn/blog_migrate/b1afd5cc0783ba538596adff147253a5.png)
二.逐一讲解
1.数学运算方式
1.1除二取整法
这个方法是我自己研究出来的一种传统方法,也是最先想出来的,所以放在最前面
.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
判断奇偶性 ()
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
' 基于数学方法进行的判断
x = 到数值 (标准输入 ())
.如果真 (取整 (x) ≠ x)
标准输出 (, “小数” + #换行符)
判断奇偶性 ()
.如果真结束
.如果 (取整 (x ÷ 2) × 2 ≠ x)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
.如果结束
判断奇偶性 ()
具体方法就是除二取整再乘二,奇数就自然而然的变成了偶数,这样就和原来不同了
这里,取整命令可以使用四舍五入替代
1.2取余数法
这是一种很常见的方法,你们应该也见过
和上面的代码基本相同,把下面的代码替换掉上面的那个如果就好
.版本 2
.如果 (x % 2 = 1)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
2.位运算方法
2.1位与的方法
位运算的应用范围还是挺广泛的,如果不了解的同学很多我就单写一篇文章给大家深入讲讲,所以如果你不会可以发到评论区里面让我看到
还是替换上面如果中的内容
.版本 2
.如果 (位与 (x, 1) = 1)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
2.2异或的方法
x和1异或,奇数得到x-1,偶数是x+1
还是换如果
.版本 2
.如果 (位异或 (x, 1) = x - 1)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
2.3位或的方法
x和1位或,奇数是原来的值,偶数是x+1
对应的判断代码就是:
.版本 2
.如果 (位或 (x, 1) = x)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
2.4左右移
利用右移吞掉尾部数字,左移时拿0补位(以上均为二进制值),可以写出:
.版本 2
.如果 (左移 (右移 (x, 1), 1) = x - 1)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
3.查找法
x除二,查找是否存在小数点
.版本 2
.如果 (倒找文本 (到文本 (x ÷ 2), “.”, , 假) = 2)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
4.记录法
4.1轮换记录法
使用一个文本型变量,轮流着记录,第一次记“奇数”,第二次记“奇数”
最后,标准输出这个变量即可
.版本 2
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
.局部变量 奇偶性, 文本型
x = 到数值 (标准输入 ())
.如果真 (取整 (x) ≠ x)
标准输出 (, “小数” + #换行符)
判断奇偶性 ()
.如果真结束
奇偶性 = “偶数”
.计次循环首 (x, )
.如果 (奇偶性 = “奇数”)
奇偶性 = “偶数”
.否则
奇偶性 = “奇数”
.如果结束
.计次循环尾 ()
标准输出 (, 奇偶性 + #换行符)
判断奇偶性 ()
4.2数组比较法
建立整数型变量n,拥有两个数组,轮流+1,最后比较两个数组的数值
.版本 2
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
.局部变量 n, 整数型, , "2"
' 基于数学方法进行的判断
x = 到数值 (标准输入 ())
.如果真 (取整 (x) ≠ x)
标准输出 (, “小数” + #换行符)
判断奇偶性 ()
.如果真结束
n [1] = 0
n [2] = 0
.计次循环首 (x, )
.如果 (n [1] = n [2])
n [1] = n [1] + 1
.否则
n [2] = n [2] + 1
.如果结束
.计次循环尾 ()
.如果 (n [1] = n [2])
标准输出 (, “偶数” + #换行符)
.否则
标准输出 (, “奇数” + #换行符)
.如果结束
判断奇偶性 ()
4.3枚举法
这种方法通过枚举数字实现,勉强归到记录法内
.版本 2
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
.局部变量 n, 整数型
x = 到数值 (标准输入 ())
n = 0
.判断循环首 (n ≠ x 且 n ≠ x + 1)
n = n + 2
处理事件 ()
.判断循环尾 ()
.如果 (n = x)
标准输出 (, “偶数” + #换行符)
.否则
标准输出 (, “奇数” + #换行符)
.如果结束
判断奇偶性 ()
5.文本分析法
对于任何问题,永远有你意想不到的方法
文本分析法就是一种
5.1取尾数
取出x的尾数,看看是不是1、3、5、7、9中的任意一个,直接就能判断奇偶性啦
.版本 2
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
.局部变量 n, 文本型
x = 到数值 (标准输入 ())
.如果真 (取整 (x) ≠ x)
标准输出 (, “小数” + #换行符)
判断奇偶性 ()
.如果真结束
n = 取文本右边 (到文本 (x), 1)
.如果 (n = “1” 或 n = “3” 或 n = “5” 或 n = “7” 或 n = “9”)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
.如果结束
判断奇偶性 ()
是不是很简单~
还有呢,这样写单行代码就有点长了,可以让它缩短一点(看下面)
5.2平方取尾数
.版本 2
.子程序 判断奇偶性, , 公开
.局部变量 x, 双精度小数型
.局部变量 n, 文本型
x = 到数值 (标准输入 ())
.如果真 (取整 (x) ≠ x)
标准输出 (, “小数” + #换行符)
判断奇偶性 ()
.如果真结束
n = 取文本右边 (到文本 (x × x), 1)
.如果 (n = “1” 或 n = “5” 或 n = “9”)
标准输出 (, “奇数” + #换行符)
.否则
标准输出 (, “偶数” + #换行符)
.如果结束
判断奇偶性 ()
嗯哼~平方完简短多了!
三.写在最后
实际上,这些方法有些是可以活用的
比如,位或的判断方式,我们就可以比较x分别同1和0的位或结果,来判断奇偶性
如果大家想到什么新的方法,欢迎发到评论区