Skip to content

Instantly share code, notes, and snippets.

@daijiang
Last active August 29, 2015 14:20
Show Gist options
  • Save daijiang/212ddae6458df33aaf82 to your computer and use it in GitHub Desktop.
Save daijiang/212ddae6458df33aaf82 to your computer and use it in GitHub Desktop.
fibonacci numbers
# python version
known = {0:0, 1:1}
def fibonacci(n):
if n in known:
return known[n]
res = fibonacci(n-1) + fibonacci(n-2)
known[n] = res
return res
fibonacci(9)
fibonacci(10)
fibonacci(20)
fibonacci(300)
# ===============================================
# R version
known = c(0, 1)
names(known) = c("s0", "s1")
fibonacci = function(n){
if(paste0("s", n) %in% names(known)) {known[paste0("s", n)]} else {
res = fibonacci(n-1) + fibonacci(n-2)
known[paste0("s", n)] <<- res
unname(res)}
}
fibonacci(9)
fibonacci(10)
fibonacci(20)
fibonacci(300)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment