数学上的定义:所有整数不是奇数(单数),就是偶数(双数)。若某数是2的倍数,它就是偶数(双数),可表示为2n;若非,它就是奇数(单数),可表示为2n+1(n为整数),即奇数(单数)除以二的余数是一。除此之外还可以从其它的角度去定义,一种方法是从二进制来看以0结尾的是偶数,以1结尾的是奇数;另一种方法是数数的方式,但并不是1,2,3,4,5这样的数,而是 偶数,奇数,偶数,奇数 这样的数 直到最后的结果。

编程中判断方法

从上述不同的定义去思考就会有不同的编程方法,从数学上的定义:

var isOdd = n => n % 2 == 0

var isEven = n => isOdd(n+1)

从二进制的角度去编程:

var isOdd = n => n & 1 == 0

var isEven = n => isOdd(n+1)

数数的方法:

var isOdd = n => n == 0 ? true : isEven(n-1)

var isEven = n => n == 0 ? false : isOdd(n-1)

如果你非常熟悉"短路与","短路或"的逻辑 也可以换成:

var isOdd = n => n == 0 || isEven(n-1)

var isEven = n => n != 0 && isOdd(n-1)

最后

前两种方法只能使用在数字上,数数的方法一般在非数字化的数据结构上面。例如:

var a = [1,[1,[1,[]]]]

a 的值是所有1之和也就是3,但a的存储结构就是这样。求a是否是偶数:

var isOdd = a => a.length == 0 || isEven(a[1])

var isEven = a => n.length != 0 && isOdd(a[1])

oracle判断单数双数,代码中你所不知道的偶数与奇数的判断方法相关推荐

  1. Go基础之--位操作中你所不知道的用法

    之前一直忽略的就是所有语言中关于位操作,觉得用处并不多,可能用到也非常简单的用法,但是其实一直忽略的是它们的用处还是非常大的,下面先回顾一下位操作符的基础 位操作符 与操作:& 1 & ...

  2. Python中你所不知道的关于函数的秘密,原来函数这么简单

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...

  3. 交际中你所不知道的说话的12个技巧!

    1."有一说一"和"自以为是"不同,别把粗鲁当成真性情 与 他人相处,要遵循一个基本原则:己所不欲,勿施于人.你可以真挚地描述自己的感受,前提是不要带有攻击性, ...

  4. 一人之下服务器维护中,《一人之下》中你所不知道的梗全在这里

    距一人之下第二季的结束也已经一年多了,但漫迷们的热情还迟迟没有退却.细数这部动漫,的确有很多的亮点值得我们去回味.这其中当然有不少被漫迷们玩坏的梗.今天我将为大家讲解一下各种梗的由来. 一.王也 &q ...

  5. 计算机驱动恢复出厂设置在哪里,你所不知道的电脑恢复出厂设置的方法

    大家都知道,电脑使用久了之后会产生很多系统垃圾,同时也可能出现一些系统故障,当故障比较严重的时候,我们只能通过重装系统或者用恢复出厂设置的方法来解决这个问题,现在,本文将给大家介绍电脑恢复出厂设置的方 ...

  6. 国际计算机思维比赛,少儿编程领域中,你所不知道的国际计算思维大赛

    原标题:少儿编程领域中,你所不知道的国际计算思维大赛 孩子学习编程,除了培养编程思维和计算思维,也能为未来应对人工智能时代打下基础.今天给大家讲的的是Bebras国际计算思维大赛,请大家持续关注坚果学 ...

  7. 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT

    https://my.oschina.net/fdhay/blog/638631 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 2016-02-18 大房 大房说 本文是我将最 ...

  8. 你所不知道的setTimeout

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...

  9. 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

    转http://www.cnblogs.com/zhijianliutang/p/4100103.html 前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的 ...

最新文章

  1. (C++)变长数组vector的常见用法
  2. ASP.Net中让网页“立即过时”
  3. php clownfish,Python实现的金山快盘的签到程序
  4. 拉取git的分支项目
  5. 数据库的几个概念:主键,外键,索引,唯一索引
  6. modem建链过程详述
  7. 数学趣题——渔夫抓鱼问题
  8. 小心SAP环境中的8大安全错误!快来对照、改正!
  9. android pdf生成 路径,android – 如何从指向PDF文档的URI获取文件路径?
  10. node mysql商城开发_GitHub - Ssipon/nideshop: NideShop:基于Node.js+MySQL开发的开源免费商城(api服务器端)...
  11. Scikit-learn:模型选择之调参grid search
  12. c语言中十进制与十六进制转换_二进制、八进制、十进制、十六进制数据转换...
  13. opencv IplImage和Mat的 区别和转换
  14. 经过卖房创业与“云吞面”群聊,老季带着优刻得迎来了“开市大吉”……
  15. 个人域名和企业域名的区别
  16. 计算机主板不通电,电脑电源正常,但主板不通电
  17. st188脉搏传感器工作原理_各种传感器工作原理动态图,拿走不谢~
  18. Spring之Specification复杂查询和Criteria查询
  19. widget中文技术文档
  20. 到底什么是JWT技术?

热门文章

  1. python token验证失败百分百解决_Token验证失败的解决方法
  2. php 判断只能是数字和字母,PHP_JS只能输入数字或数字和字母等的正则表达式,JS判断只能是数字和小数点 0. - phpStudy...
  3. 2.8 SortedMap接口与TreeMap源码解析
  4. 磁盘名称:裸设备名称、lvm卷、盘符的理解
  5. 子串查找(字符串匹配)
  6. android前端代码编辑器,前端程序员福利,6款轻量级富文本编辑器
  7. 庞果网-回文字符串(failed)
  8. Shader 学习笔记:描边
  9. 关于重绘repaint和重排reflow
  10. 阿里P7晒工资条,看完好扎心了……