如何使用递增的值来填充数组Ruby

Ali*_*Ali 5 ruby arrays project

我正在尝试解决http://projecteuler.net/problem=1.

我想创建一个方法,它接受一个整数,然后创建一个包含在它之前的所有整数的数组,并将整数本身作为数组中的值.

以下是我到目前为止的情况.代码不起作用.

def make_array(num)
  numbers = Array.new num  
  count = 1

  numbers.each do |number|
    numbers << number = count
    count = count + 1
  end

  return numbers    
end

make_array(10)
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 9

(1..num).to_a 你需要在Ruby中做的一切.

1..num将创建一个Range具有start 1和end 的对象,无论值num是什么.Range对象有通过枚举范围内的每个元素to_a将它们炸成实际Arrays的方法.

在大多数情况下,你实际上并不需要Array- Range将正常工作.这包括迭代(这是我假设你想要的,考虑到你正在处理的问题).

也就是说,知道如何创建这样的Array"手工"是有价值的学习经验,所以你可能想继续努力.提示:你想先用空数组([])代替Array.new num,然后迭代一些东西num.times,然后在数字中添加数字Array.如果你已经从一个Array大小开始num,然后将num元素推入其中,你将最终得到两个num元素.如果你正在迭代数组时添加元素,那么循环永远不会退出,因为对于你处理的每个元素,你要添加另一个元素.这就像用磁铁的排斥侧追逐金属球一样.