summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/sources
diff options
context:
space:
mode:
authorHaidong Ji2018-08-16 22:18:18 -0500
committerHaidong Ji2018-08-16 22:18:18 -0500
commit18030db87580ab02962686509f65c7e1cfcd2d4c (patch)
tree9128a204152692e6b0782804017316af6fbf1b4f /AlgoDesignAndTechniqueEdxPython/sources
parent2a6711ab6b09f5ab7bb066cd6c11670e6ff2bd90 (diff)
Fib last digit done. Yay!
Bonus: figured PyDev TDD code generation issue. I created "sources" as a source folder, but really should have created as a package, for TDD code generation to work properly. Fixed now!
Diffstat (limited to 'AlgoDesignAndTechniqueEdxPython/sources')
-rw-r--r--AlgoDesignAndTechniqueEdxPython/sources/__init__.py0
-rw-r--r--AlgoDesignAndTechniqueEdxPython/sources/fiblastdigit.py29
2 files changed, 29 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxPython/sources/__init__.py b/AlgoDesignAndTechniqueEdxPython/sources/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxPython/sources/__init__.py
diff --git a/AlgoDesignAndTechniqueEdxPython/sources/fiblastdigit.py b/AlgoDesignAndTechniqueEdxPython/sources/fiblastdigit.py
new file mode 100644
index 0000000..cca9cd9
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxPython/sources/fiblastdigit.py
@@ -0,0 +1,29 @@
+# Uses python3
+import sys
+def getFibLastDigitNaive(n):
+ if n <= 1:
+ return n
+
+ previous = 0
+ current = 1
+
+ for _ in range(n - 1):
+ previous, current = current, previous + current
+
+ return current % 10
+
+
+def getFibLastDigitOptimized(n):
+ if (n <= 1):
+ return n
+ fibLst = [None] * (n+1)
+ fibLst[0] = 0
+ fibLst[1] = 1
+ for i in range(2, n+1):
+ fibLst[i] = (fibLst[i-1] + fibLst[i-2]) % 10
+ return fibLst[n]
+
+if __name__ == '__main__':
+ input = sys.stdin.read()
+ n = int(input)
+ print(getFibLastDigitOptimized(n))