Skip to content

Instantly share code, notes, and snippets.

@maehrm
Created March 3, 2018 08:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maehrm/0a39218e3452ae2dec72641e17fb40b1 to your computer and use it in GitHub Desktop.
Save maehrm/0a39218e3452ae2dec72641e17fb40b1 to your computer and use it in GitHub Desktop.
def solv arr
arr.permutation.each {|a|
['+', '-', '*'].repeated_permutation(3).each {|op|
exp1 = "(((#{a[0]} #{op[0]} #{a[1]}) #{op[1]} #{a[2]}) #{op[2]} #{a[3]})"
return exp1 if eval(exp1) == 10
exp2 = "((#{a[0]} #{op[0]} #{a[1]}) #{op[1]} (#{a[2]} #{op[2]} #{a[3]}))"
return exp2 if eval(exp2) == 10
exp3 = "((#{a[0]} #{op[0]} (#{a[1]} #{op[1]} #{a[2]})) #{op[2]} #{a[3]})"
return exp3 if eval(exp3) == 10
}
}
0
end
while str = gets
arr = str.split.map(&:to_i)
break if arr.reduce(:+).zero?
puts solv arr
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment