关键字:奇数(odd number),偶数(even number)
第一种方法
小学数学老师教我们算法。取最后该数的末尾数,凡是为0,2,4,6,8者为偶,1,3,5,7,9为奇。例如,数13。末尾数为3,奇数。数250,末尾数为0,偶数。
用Python代码演示算法:
def even(x):
''' 是否为偶数'''
return int(str(x)[-1]) in [0,2,4,6,8]
def odd(x):
'''是否为奇数'''
return int(str(x)[-1]) in [1,3,5,7, 9]
第二种方法
学过数的模运算,我们有了最直接的判定方法。设数为n, 凡是n除以2,余数为零,则为偶,余数为1者为奇。
def even(x):
return x % 2 == 0
def odd(x):
return x % 2 != 0
第三种方法
从电脑角度,以上两种算法还不是最高效的。我们来看最牛逼的算法。
数在电脑里是一串1和0组成的串串,用二进制表示。例如,13这个数,在电脑里其实为1101。250这个数,在电脑里是11111010。
判定数奇偶,取出它的二进制数串串的最右一位(也称为末尾数)。只有两种可能。要么为1,要么为0。为1该数为奇数,为0则数为偶数。
验证一下,13的二进制形式为1101,末尾数为1,则为奇。250的二进制形式为11111010,最后一位数为0,则为偶。
对于人类来说,第三种算法并不理想。毕竟人脑习惯使用十进制。将一个十进制数转换为二进制数,费事!
电脑则不同,二进制是它的母语。表达和运算全是从二进制走起。从二进制数串串里取出指定的位数,只需要一个位运算,与(&),即可。对于电脑来说,没有比这更高效了!
Python代码:
def even(x):
return x & 1 == 0
def odd(x)
return x & 1 == 1
总结,电脑的母语是0和1。在追求效率上,如果可能,直接操作二进制位获得结果,最为高效。
/* 全文结束 */
喜欢就点赞。 更多精彩,请关注我
今日头条号/西瓜视频/抖音:IT之州
* 本文为原创文章,引用或转载请获得作者正式授权,并注明出处。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved