Мне нужно выяснить, содержит ли массив целых чисел один или несколько элементов, которые делят массив на две части, так что сумма элементов в левой и правой частях равна.
Я пробовал это:
arr = [1,2,3,4,3,2,1]
left_sum = 0
right_sum = arr.inject(0) { |sum, x| sum = sum + x }
for i in 0..arr.length-1
counter = []
right_sum = right_sum - arr[i]
case i
when 0
left_sum = 0
else
left_sum = left_sum + arr[i-1]
end
puts "Left sum of element #" + i.to_s + "=" + left_sum.to_s
puts "Right sum of element #" + i.to_s + "=" + right_sum.to_s
puts " "
if right_sum - arr[i] == left_sum + arr[i-1]
puts "Left sum" + "=" + "Right sum"
counter.push(i)
end
puts counter.to_s
end
Я обнаружил ошибку.Я не понимаю, почему if
заявление не работает в for
цикле.Что я сделал не так?