配列内のすべての整数要素を見つける必要があり、その合計は配列内の整数要素の 1 つに等しくなります。
たとえば、入力として次のような配列があるとします。
[1, 2, 4, 10, 90, 302, 312, 500]
次に、出力には、他の要素の合計である整数要素を含むすべての整数要素が含まれている必要があります。[10, 302, 312]
次のようになります。10+302 = 312
これは私がルビーで試したことです:
numbers = [1, 2, 4, 10, 90, 302, 312, 500]
numbers.each_with_index do |number, index|
target = []
return [] if numbers.size < 3
target << number
puts "target in numbers.each: #{target.inspect}"
0.upto(numbers.size).each do |i|
puts "target in (index+1).upto: #{target.inspect}"
target << numbers[i] unless index == i
next if target.size < 2
break if target.inject(&:+) > numbers.max
puts "== array starts =="
puts [target, target.inject(&:+)].flatten.inspect if numbers.include? target.inject(&:+)
puts "== array ends =="
end
end
しかし、それは期待される出力を行っていません。これで運が良ければ更新します。それまで、私がここで間違っていることを誰かが指摘できますか? ありがとう。
アルゴリズムも私に適しています。