loading...

re: Daily Challenge #242 - Expressions Matter VIEW POST

FULL DISCUSSION
 

maybe not the most elegant, but it work!

def expression_matter(a,b,c)
  sum = [a,b,c].sum

  tmp = [a,b,c].inject('*')
  sum = tmp if sum < tmp

  tmp = (a + b) * c
  sum = tmp if sum < tmp

  tmp = a + (b * c)
  sum = tmp if sum < tmp

  tmp = a * (b + c)
  sum = tmp if sum < tmp

  tmp = (a + c ) * b
  sum = tmp if sum < tmp

  sum 
end
pry(main)> expression_matter(5, 1, 3)
=> 20
pry(main)> expression_matter(3, 5, 7)
=> 105
pry(main)> expression_matter(5, 6, 1)
=> 36
pry(main)> expression_matter(1, 6, 1)
=> 12
pry(main)> expression_matter(2, 6, 1)
=> 18
 

Alternative Ruby version:

def expression_matter(a, b, c)
  [
    a + b + c,
    a * b * c,
    a + b * c,
    (a + b) * c,
    a * b + c,
    a * (b + c)
  ].max
end
code of conduct - report abuse