将整数拆分为数组

时间:2016-07-25 04:41:16

标签: ruby-on-rails arrays ruby split integer

我需要将整数拆分成数组。

例如,

整数变量a等于48

a = 48

我需要根据10的数量将48分成一个数组。

我需要得到如下数组,

arr = [ 10, 20, 30, 40, 48]

编辑: -

我尝试了以下代码,但效果很好。

max = 48
arr = []
j = 0
for i in 1..max
  if i % 10 == 0
    arr[j] = i
    j = j + 1
  end
end

if max % 10 != 0
  arr[j] = max
end

p arr
# => [10, 20, 30, 40, 48]

但如果我有一个bignum整数,则需要更多时间。是否有任何内置方法,如字符串拆分。

我知道split方法,而且我知道如何根据字符串中可用的字符将字符串拆分为数组。但我不知道如何使用split方法根据计数将整数拆分为数组。

任何人请解释我如何做到这一点?

提前致谢!

4 个答案:

答案 0 :(得分:2)

(10..a).step(10).to_a.push(a) #=> [10, 20, 30, 40, 48] 开始,然后尝试:

a

在转换为数组之前使用Range#step将范围增加十步,最后追加您的值10.step(a,10).to_a << a #=> [10, 20, 30, 40, 48] 。或者你也可以写:

<?xml version="1.0" encoding="UTF-8"?><jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">  
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>  
<sub-deployment name="HelloWorld.jar">  
    <dependencies>  
        <module name="deployment.JCA_IDKit_RAR_2.53-2.0.0-SNAPSHOT.rar" />  
    </dependencies>  
</sub-deployment></jboss-deployment-structure>  

答案 1 :(得分:1)

你可以试试这个

TabPage

答案 2 :(得分:0)

我建议这个解决方案可以随意更改一些代码错误,因为我不熟悉ruby:

$a = 48
$num = 10
array = Array.new

while $num < $a do
   array << $num
   $num +=10
end
array << $a

答案 3 :(得分:0)

在这种情况下,您可以使用maplambda

a = 48
arr = ((1..a/10).map(&->(x){x*10}) << a).uniq

p arr
# => [10, 20, 30, 40, 48]

对于Range (1..a/10)中的所有元素(在本例中为1..4),map方法调用lambda函数。这个lambda有一个参数并返回x*10(对于第一个元素1*10 # => 10)并将所有结果添加到数组中。

我希望这会有所帮助。