OP 希望打印范围的某些元素。首先构造一个数组是低效的(但不一定是坏的,当然)。我的回答和其他一些人没有创建数组。
假设范围的格式为first..last。要打印每个 multiple 元素,以相反的顺序,您可以编写:
def rev_n_skip(first, last, multiple)
(first..last).step(multiple).reverse_each { |i| print "#{i} " }
puts
end
rev_n_skip(1, 19, 3) #-> 19 16 13 10 7 4 1
rev_n_skip(1, 18, 3) #-> 16 13 10 7 4 1
rev_n_skip(1, 17, 3) #-> 16 13 10 7 4 1
rev_n_skip(1, 16, 3) #-> 16 13 10 7 4 1
rev_n_skip(1, 15, 3) #-> 13 10 7 4 1
rev_n_skip(2, 19, 3) #-> 17 14 11 8 5 2
rev_n_skip(2, 18, 3) #-> 17 14 11 8 5 2
rev_n_skip(2, 17, 3) #-> 17 14 11 8 5 2
rev_n_skip(2, 16, 3) #-> 14 11 8 5 2
rev_n_skip(2, 15, 3) #-> 14 11 8 5 2