对数组中的所有数字求和

时间:2015-06-30 20:08:37

标签: ruby

我想将可能无限数量的数字放入其中然后将其添加到数组中,然后将它们全部添加到一起。

我在其他一些问题上看到了这一点,但它们只是puts - 数组,而不是求和。

case input
 when 'add'
 puts "Enter the numbers to add on separate lines then hit enter on another line"
 add_array = []
 numbers_to_add = " "
 while numbers_to_add != ""
  numbers_to_add = gets.chomp
  add_array.push numbers_to_add
 end
 add_array.delete('')
 add_array.map(&:to_f).inject(:+)
 puts add_array
end

1 个答案:

答案 0 :(得分:4)

您可以使用inject方法。

[1,2,3].inject(:+) #=> 6

根据你的代码的外观,我猜你的传入数组是一个字符串数组,而不是一个数字数组。要将它们转换为小数(浮点数),您可以使用:

sum = add_array.map(&:to_f).inject(:+)
puts sum

这对每个元素应用#to_f操作,然后将其传递给求和函数(#inject(:+)