Skip to content

Instantly share code, notes, and snippets.

@Workman
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save Workman/9169137 to your computer and use it in GitHub Desktop.

Select an option

Save Workman/9169137 to your computer and use it in GitHub Desktop.
Is it in Fibo? (Hint: Cake is not a fibo.)
#!/usr/bin/env ruby
def inFibo? f
if f.is_a? Array
f = [ f[1], (f[0] + f[1]), f[2] ]
#puts "#{f.inspect} ? #{f[1]} == #{f[2]}"
if f[1] < f[2]
return inFibo? f
elsif f[1] == f[2]
return true
end
elsif f.is_a? Integer
return inFibo? [0,1,f] if f > 0
end
return false
end
puts inFibo? 5 #T
puts inFibo? 13 #T
puts inFibo? "Cake" #F
puts inFibo? -1 #F
puts inFibo? 50 #F
puts inFibo? 6765 #T
puts inFibo? 1346269 #T
puts inFibo? 12586269025 #T
puts inFibo? 11825896447871834976429068427 #T
puts inFibo? 11825896447871834976429068428 #F
puts inFibo? 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 #F Googol
puts inFibo? 14913169640232740127827512057302148063648650711209401966150219926546779697987984279570098768737999681 #T
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment