如何編寫一個方法來有效地實現這個功能?Ruby如何編寫連續的分區
divide_array([a,b,c]) # return a.to_f/b.to_f/c.to_f
divide_array([a,b,c,d,e]) # return a.to_f/b.to_f/c.to_f/d.to_f/d.to_f
這是我能像
def divide_array(array)
return false if array.include?(0)
result = 0
array.each_with_index do |i, index|
break if index >= array.size - 1
result = i.to_f/array[index + 1].to_f
end
result
end
但我認爲Ruby是一個優雅的語言,它必須是一個更好和更有效的方式來實現這一目標。 (也許就像reduce
或inject
?)
你的問題,如果你的例子會比較清楚((52/2)/ 4)/ 2 =>((26.0)/ 4)/ 2 => 6.5/2 = > 3.25'。 –
@CarySwoveland我刪除了我的評論。我實際上是參考了這個風格指南,並且完全得到了向''inject''後面的'reduce'。謝謝你指出。 – Dbz