bogdanrada
7/20/2017 - 6:08 PM

Find all number pairs in a Ruby array that add up to a given number

Find all number pairs in a Ruby array that add up to a given number

#!/usr/bin/env ruby

numbers = [2, 6, 4, 8, 8, 9]
sum     = ARGV.empty? ? 10 : ARGV.first.to_i

def sum_exists(numbers, sum)
  Array(numbers).combination(2).find_all { |x, y| x + y == sum } || []
end

result = sum_exists(numbers, sum)

puts "given this array: #{numbers.inspect}"
puts "#{result.size} pairs add up to #{sum}: #{result.inspect}"