【问题标题】:Creating an array of arrays [closed]创建数组数组[关闭]
【发布时间】:2015-05-18 03:24:44
【问题描述】:

我需要一个方法coins,它接受一个整数并将其映射到一个由 2 到 4 的数字除以整数的数组。我需要继续这样做,直到所有数字都达到零,然后计算元素在数组中。示例如下:

coins(5) # => 11

其推导如下:

# 5
# => [2, 1, 1]
# => [[1, 0, 0], [0, 0, 0], [0, 0, 0]] 
# => [[[0, 0, 0], 0, 0], [0, 0, 0], [0, 0, 0]]

如果向下舍入的数字不等于 0,则数组的每个索引需要发生以下情况。

def coins(n)
  arr = (n/2), (n/3), (n/4)
  i = 0
  while i < arr.length
    if arr[i] != 0
      arr[i] = (n/2), (n/3), (n/4)
    end
    i += 1
  end
end

【问题讨论】:

  • 也许是我,但我不明白你的硬币方法应该做什么,你能把这个的伪代码放上去,也许对我来说会更清楚。
  • 你有什么问题?
  • @sawa 基本上如何创建子数组,直到所有元素都为 0

标签: arrays ruby multidimensional-array


【解决方案1】:
def coins n
  a = [n]
  a.replace(a.flat_map{|e| e.zero? ? e : [e/2, e/3, e/4]}) until a.all?(&:zero?)
  a.length
end

coins(5) # => 11

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2015-03-29
    相关资源
    最近更新 更多