我是ruby on rails的新手。
我正在编写ruby并想尝试检查2个数组的数组是否与ruby中的输入数相加。
例如 数组A [] = {3,1,8,11,5,7} 给定整数表示N = 6 答案是1.5。
我知道如何用java,C ++编程,但我仍然坚持使用ruby编码,
任何人都可以帮助我。谢谢你提前
答案 0 :(得分:2)
您可以使用Array#combination
:
ary = [3, 1, 8, 11, 5, 7]
n = 6
ary.combination(2).detect { |a, b| a + b == n }
#=> [1, 5]
combination(2)
创建一个长度为2的所有组合的数组,即[3,1], [3,8], [3,11]
等。detect { |a, b| a + b == n }
返回第一对n
答案 1 :(得分:1)
a = [3, 1, 8, 11, 4, 5, 7, 2]
> a.combination(2).select {|i| i.inject(:+) == 6 }
#=> [[1, 5], [4, 2]]
答案 2 :(得分:0)
a = [3, 1, 8, 11, 5, 7]
p a.combination(2).find{|i| i.inject(:+) == 6}
# >> [1, 5]