在Ruby on Rails中找到60的除数的最简单方法

时间:2015-03-06 20:33:37

标签: ruby-on-rails ruby-on-rails-4

除了硬编码或使用Math模块之外,还有什么方法可以在Ruby on Rails中找到60的除数。我可以使用的任何辅助方法/正则表达式?谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

这将为您提供除数数组

(1..60).select { |n| 60 % n == 0}
=> [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]

答案 1 :(得分:2)

实现这一目标的最简单方法之一是创建一个介于1和60之间的数字列表,然后只选择除以60且没有余数的数字。

为了扩展SteveTurczyn的答案,我们可以做到:

(1..60).select { |n| 60 % n == 0 }

(1..60)部分创建一个枚举器(在这种情况下,我们可以将其视为1到60之间数字的数组)。

然后你想要获取这个数组,并且只选择元素是60的除数。

我们可以使用模数运算符%,当我们将数字除以另一个数字时(例如,5 % 2返回1),它给出了剩余的余数。当然,如果没有余数,那么我们知道这个数字干净利落,因此是该数字的除数(即,如果a % b == 0,那么b是a的除数。)

所以我们想要做的是,使用上面作为选择1到60之间数字数组中元素的标准,我们可以使用Array#select方法。

如果我们有一些东西,比如数组(技术上,我认为是Enumerable),我们可以使用#select和一个块来仅提取满足我们在块中指定的任何条件的元素。 / p>

{ |n| 60 % n == 0 }是我们传递给#select的块,每当60 % n0时,它都会返回true(每个n是数字数组中的元素1至60)。 Array#select仅返回块计算结果为true的数组中的元素 - 这就是SteveTurczyn解决方案的工作原理。