gpt4 book ai didi

erlang - 判断整数是偶数还是奇数

转载 作者:行者123 更新时间:2023-12-05 08:43:35 25 4
gpt4 key购买 nike

我正在学习 Erlang 以及 Joe 书中提到的其中一个问题

The function even(X) should return true if X is an even integer and otherwise false. odd(X) should return true if X is an odd integer.

我的解决方法是

-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>

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

谢谢

最佳答案

您可以使用守卫将自己限制为大于或等于零的整数,然后按照问题评论中的建议简单地检查最低有效位。您还可以根据 even/1 定义 odd/1:

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

守卫是函数头的一部分,所以如果你调用 even(-1) 它将无法匹配,就像你调用 even(1, 2)(即参数数量错误)。

关于erlang - 判断整数是偶数还是奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com