about summary refs log tree commit diff
path: root/scratch/facebook/nth-fibonacci.py
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/facebook/nth-fibonacci.py')
-rw-r--r--scratch/facebook/nth-fibonacci.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/scratch/facebook/nth-fibonacci.py b/scratch/facebook/nth-fibonacci.py
new file mode 100644
index 000000000000..f524067b3b44
--- /dev/null
+++ b/scratch/facebook/nth-fibonacci.py
@@ -0,0 +1,13 @@
+# 0, 1, 1, 2, 3, 5
+def fib(n):
+    if n < 0:
+        raise Exception("Need to supply an index that's >= 0. Not: {}".format(n))
+    elif n in {0, 1}:
+        return n
+    state = [0, 1]
+    for i in range(1, n):
+        state[0], state[1] = state[1], state[0] + state[1]
+    return state[-1]
+
+for i in range(10):
+    print("fib({}) => {}".format(i, fib(i)))