DEV Community

Discussion on: Daily Challenge #160 - Expression Matters

Collapse
 
rburmorrison profile image
Ryan Burmeister-Morrison

Here's a Nim submission:

proc expressionsMatter(a, b, c: Natural): Natural =
  ## Accepts three numbers in the Natural range [0..high(int)], then
  ## returns the maximum value after inserting parentheses, addition
  ## operators, and multiplication operators in any order.
  result = max(result, a + b + c)
  result = max(result, a * b * c)
  result = max(result, a + b * c)
  result = max(result, (a + b) * c)
  result = max(result, a * b + c)
  result = max(result, a * (b + c))

assert expressionsMatter(1, 2, 3) == 9
assert expressionsMatter(1, 1, 1) == 3
assert expressionsMatter(9, 1, 1) == 18