aboutsummaryrefslogtreecommitdiff
path: root/challenge-112/abigail/lua
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-05-11 19:29:08 +0200
committerAbigail <abigail@abigail.be>2021-05-11 19:29:08 +0200
commitd498fd3ea3e1df8c647b83e5e4922e6af971960b (patch)
tree819e85b07402a425620c67795fbac4b2619be967 /challenge-112/abigail/lua
parent6b21ba5c2303a59a3cca7b693ea0a55faf766c95 (diff)
downloadperlweeklychallenge-club-d498fd3ea3e1df8c647b83e5e4922e6af971960b.tar.gz
perlweeklychallenge-club-d498fd3ea3e1df8c647b83e5e4922e6af971960b.tar.bz2
perlweeklychallenge-club-d498fd3ea3e1df8c647b83e5e4922e6af971960b.zip
Use closed form to calculate Fibonacci numbers for week 112, part 2.
Diffstat (limited to 'challenge-112/abigail/lua')
-rw-r--r--challenge-112/abigail/lua/ch-2.lua16
1 files changed, 4 insertions, 12 deletions
diff --git a/challenge-112/abigail/lua/ch-2.lua b/challenge-112/abigail/lua/ch-2.lua
index db76016a8e..8932952bbd 100644
--- a/challenge-112/abigail/lua/ch-2.lua
+++ b/challenge-112/abigail/lua/ch-2.lua
@@ -5,20 +5,12 @@
--
--
--- Run as: lua ch-1.lua < input-file
+-- Run as: lua ch-2.lua < input-file
--
-local cache = {}
-cache [0] = 1
-cache [1] = 1
-
-function fib (n)
- if cache [n] == nil
- then cache [n] = fib (n - 1) + fib (n - 2)
- end
- return cache [n]
-end
+local SQRT5 = math . sqrt (5)
+local PHI = (1 + SQRT5) / 2
for line in io . lines () do
- print (fib (tonumber (line)))
+ print (math . floor (0.5 + PHI ^ (tonumber (line) + 1) / SQRT5))
end