我被困在这个问题上。我试图用 Ruby 解决它。
我的回答是
4.times{|i| puts "#{i}"} && 5.upon(7){|i| puts "#{i}}
但是,我不确定它是否正确。
我被困在这个问题上。我试图用 Ruby 解决它。
我的回答是
4.times{|i| puts "#{i}"} && 5.upon(7){|i| puts "#{i}}
但是,我不确定它是否正确。
这应该适合你
result = (0..3).to_a.product((5..7).to_a)
puts result.inspect
#=> [[0, 5], [0, 6], [0, 7], [1, 5], [1, 6], [1, 7], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7]]
不确定它是否正确
通常,在这种情况下,您会尝试运行代码。如果你这样做了,你会注意到(逐渐地)你缺少一个引号,没有这样的方法Fixnum#upon
(upto
会这样做),代码一次只输出一个数字,而不是一对,并且第二个循环没有运行(因为times
返回nil
,并且nil && x
被短路,所以x
不评估)。
至于你的问题,它要求数字对的序列,而不是它的显示,所以puts
不需要。此外,由于您需要对,因此您应该嵌套两个循环,而不是一个接一个。
(0..3).flat_map { |x| (4..7).map { |y| [x, y] } }
将是编写它的一种简单方法。
编辑:flat_map
比map.flatten
. 不过,macek 的回答更具体+1。