当前位置:  开发笔记 > 编程语言 > 正文

你如何在Erlang中做模数或余数?

如何解决《你如何在Erlang中做模数或余数?》经验,为你挑选了3个好方法。

我是Erlang的新手.你怎么做模数(得到除法的其余部分)?它在大多数类C语言中都是%,但它在Erlang中指定了注释.

有几个人回复了rem,在大多数情况下这很好.但我正在重新考虑这一点,因为现在我需要使用负数而rem会给你一个除法的余数,这与负数的模数不同.



1> grifaton..:

在Erlang中,5 rem 3.给出2,而-5 rem 3.给-2.如果我理解你的问题,你会想要-5 rem 3.而不是1,因为-5 = -2*3 + 1.

这样做你想要的吗?

mod(X,Y) when X > 0 -> X rem Y;
mod(X,Y) when X < 0 -> Y + X rem Y;
mod(0,Y) -> 0.


或者:mod(X,Y) - >(X rem Y + Y)rem Y.

2> Alnitak..:

erlang模运算符是 rem

Eshell V5.6.4  (abort with ^G)
1> 97 rem 10.
7



3> Joe Eifert..:

我在灵药中使用了以下内容:

defp mod(x,y) when x > 0, do: rem(x, y);
defp mod(x,y) when x < 0, do: rem(x, y) + y;
defp mod(0,_y), do: 0

请不要低估这一点,因为它是另一种语言而不是问题.我们都过着梦想,因为我们都拥有光束.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有