Skip to content

Instantly share code, notes, and snippets.

@kmdsbng
Created October 18, 2014 01:33
Show Gist options
  • Select an option

  • Save kmdsbng/f4d35683e28569a01d3d to your computer and use it in GitHub Desktop.

Select an option

Save kmdsbng/f4d35683e28569a01d3d to your computer and use it in GitHub Desktop.
def fib_iter(prev2, prev, remain)
current = prev2 + prev
remain > 0 ? fib_iter(prev, current, remain - 1) : current
end
# n == 0 => 0, n == 1 => 1, n == 2 => 1, n == 3 => 2, n == 4 => 3, n == 5 => 5 ...
def fib(n)
return n if [0, 1].include?(n)
return fib_iter(0, 1, n - 2)
end
def main
fib(0) # => 0
fib(1) # => 1
fib(2) # => 1
fib(3) # => 2
fib(4) # => 3
fib(10) # => 55
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment