我是 ruby on rails 的新手。
我正在对 ruby 进行编程,并想尝试检查 2 个数组数字是否与 ruby 中的输入数字相加。
例如,数组 A[]= {3, 1, 8, 11, 5, 7} 给定整数 N = 6 答案将是 1,5。
我知道如何用 java、C++ 编程,但我被困在 ruby 编码中,
谁能帮帮我。在此先感谢
我是 ruby on rails 的新手。
我正在对 ruby 进行编程,并想尝试检查 2 个数组数字是否与 ruby 中的输入数字相加。
例如,数组 A[]= {3, 1, 8, 11, 5, 7} 给定整数 N = 6 答案将是 1,5。
我知道如何用 java、C++ 编程,但我被困在 ruby 编码中,
谁能帮帮我。在此先感谢
您可以使用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 }
返回第一对 sumn
a = [3, 1, 8, 11, 4, 5, 7, 2]
> a.combination(2).select {|i| i.inject(:+) == 6 }
#=> [[1, 5], [4, 2]]
a = [3, 1, 8, 11, 5, 7]
p a.combination(2).find{|i| i.inject(:+) == 6}
# >> [1, 5]