Skip to content

Instantly share code, notes, and snippets.

@iremlopsum
Created January 8, 2018 12:11
Show Gist options
  • Save iremlopsum/932454791fad95db8e0d838e21de335d to your computer and use it in GitHub Desktop.
Save iremlopsum/932454791fad95db8e0d838e21de335d to your computer and use it in GitHub Desktop.
const fib = (n) => {
if (n == 0) {
return 0;
}
if (n == 1 || n == 2) {
f[n] = 1;
return f[n]
}
if (f[n]) {
return f[n]
}
if (n & 1) {
k = Math.floor(((n + 1) / 2))
} else {
k = Math.floor(n / 2)
}
if ((n & 1)) {
f[n] = (fib(k) * fib(k) + fib(k-1) * fib(k-1))
} else {
f[n] = (2*fib(k-1) + fib(k))*fib(k)
}
return f[n]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment