ruby - 如何用递增的值填充数组 Ruby

标签 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)

最佳答案

(1..num).to_a 是您在 Ruby 中需要做的全部。

1..num 将创建一个 Range 对象,以 1 开始并以任意值 num 结束是。 Range 对象有 to_a 方法通过枚举范围内的每个元素将它们分解成真正的数组

对于大多数用途,您实际上不需要 Array - Range 就可以正常工作。这包括迭代(考虑到您正在处理的问题,这就是我假设您想要的)。

也就是说,知道如何“手工”创建这样一个Array 是宝贵的学习经验,因此您可能希望继续努力。提示:您想从一个空数组 ([]) 开始,而不是 Array.new num,然后迭代一些内容 num.times,然后将数字添加到 Array 中。如果您已经从大小为 numArray 开始,然后将 num 元素插入其中,您将得到两次 num 个元素。如果像您的情况一样,您在迭代数组时添加元素,则循环永远不会退出,因为对于您处理的每个元素,您都会添加另一个元素。这就像用磁铁的排斥面追逐一个金属球。

关于ruby - 如何用递增的值填充数组 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190652/

相关文章:

ruby - Rails/重命名或 move 文件

project - 向您介绍项目的最佳方式是什么?

ruby - Chrome 中缺少 session 过期值,但在 Firefox 和 IE 中存在

ruby - 在 Module#included 中的 class_eval 中定义类变量

ruby-on-rails - 如何使用 nginx 设置从 http 到 https 的重定向?

java - 如何将数组索引转换为车和主教棋子的可能走法

c++ - 在现代 C++ 中优雅地定义多维数组

java - 将字符数组插入 HashMap

c++ - MS Visual Studio 2010 Professional Project Designer 没有出现?

vim - 如何防止 NERDTree 在 (g)vim 中调整项目窗口的大小?