Skip to content

Instantly share code, notes, and snippets.

@victorlcampos
Created October 25, 2015 10:53
Show Gist options
  • Save victorlcampos/9b0f9e2423cbeca4cc17 to your computer and use it in GitHub Desktop.
Save victorlcampos/9b0f9e2423cbeca4cc17 to your computer and use it in GitHub Desktop.
Código para adivinha um número passado dentro de Range
defmodule BinarySearch do
def guess(number, a..b), do: guess(number, a..b, calc_half(a, b))
def guess(number, _, number) do
IO.puts("Is it #{number}")
IO.puts(number)
end
def guess(number, _..b, my_guess) when number > my_guess do
IO.puts("Is it #{my_guess}")
guess(number, my_guess..b, calc_half(my_guess, b))
end
def guess(number, a.._, my_guess) when number < my_guess do
IO.puts("Is it #{my_guess}")
guess(number, a..my_guess, calc_half(a, my_guess))
end
defp calc_half(a, b), do: div((b-a),2) + a
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment