coding for food

[Ruby] exercise _ All Else Equal

silveryen 2022. 8. 7. 14:08

Write a method all_else_equal that takes in an array of numbers. The method should return the element of the array that is equal to half of the sum of all elements of the array. If there is no such element, the method should return nil.

def all_else_equal(arr)

end

p all_else_equal([2, 4, 3, 10, 1]) #=> 10, because the sum of all elements is 20
p all_else_equal([6, 3, 5, -9, 1]) #=> 3, because the sum of all elements is 6
p all_else_equal([1, 2, 3, 4])     #=> nil, because the sum of all elements is 10 and there is no 5 in the array
# my code

def all_else_equal(arr)
  sum = 0
   
  arr.each do |num|
  	sum += num
  end
  half = sum / 2

  if arr.include?(half) 
    return half
  else
    return nil
  end
end

p all_else_equal([2, 4, 3, 10, 1]) #=> 10, 
p all_else_equal([6, 3, 5, -9, 1]) #=> 3, 
p all_else_equal([1, 2, 3, 4])     #=> nil,
# solution 

def all_else_equal(arr)
  sum = sum_array(arr)

  arr.each do |ele|
    if ele == sum / 2.0
      return ele
    end
  end

  return nil # default return nil
end

def sum_array(arr)
  sum = 0

  arr.each do |num|
    sum += num
  end

  return sum
end

p all_else_equal([2, 4, 3, 10, 1]) #=> 10
p all_else_equal([6, 3, 5, -9, 1]) #=> 3
p all_else_equal([1, 2, 3, 4])     #=> false