热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

查找整数是偶数还是奇数

如何解决《查找整数是偶数还是奇数》经验,为你挑选了1个好方法。

我正在学习Erlang,按照Joe书中所述,问题之一

如果X是偶数整数,则函数even(X)应该返回true,否则返回false。如果X是一个奇数整数,odd(X)应该返回true。

我解决这个问题的方法是

-module(math_functions).

%% API
-export([even/1, odd/1]).

even(Integer) -> (Integer >= 0) and (Integer rem 2 =:= 0).
odd(Integer) -> (Integer >= 1) and (Integer rem 2 =/= 0).

并运行为

Eshell V6.2  (abort with ^G)
1> math_functions:odd(13).
true
2> math_functions:odd(-13).
false
3> math_functions:odd(1).
true
4> math_functions:even(1).
false
5> math_functions:even(2).
true
6> math_functions:even(-2).
false
7>   

我的问题是,是否有更好的方法可以做到这一点

谢谢



1> Steve Vinosk..:

您可以使用防护将自己限制为大于或等于零的整数,然后按照问题注释中的建议检查最低有效位。您还可以odd/1根据以下方面进行定义even/1

even(X) when X >= 0 -> (X band 1) == 0.
odd(X) when X > 0 -> not even(X).

保护是函数头的一部分,因此,如果调用even(-1)它,将无法以与调用完全相同的方式进行匹配even(1, 2)(即,参数数量错误)。


推荐阅读
author-avatar
志薇俊元4565
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有