我需要将整数拆分成数组。
例如,
整数变量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方法根据计数将整数拆分为数组。
任何人请解释我如何做到这一点?
提前致谢!
答案 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)
在这种情况下,您可以使用map
和lambda
。
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
)并将所有结果添加到数组中。
我希望这会有所帮助。