From 5af854f4892557e1f1de653b46402cbfd7baaff9 Mon Sep 17 00:00:00 2001 From: Abigail Date: Mon, 10 May 2021 21:06:57 +0200 Subject: Lua solutions for week 112 --- challenge-112/abigail/lua/ch-2.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 challenge-112/abigail/lua/ch-2.lua (limited to 'challenge-112/abigail/lua/ch-2.lua') diff --git a/challenge-112/abigail/lua/ch-2.lua b/challenge-112/abigail/lua/ch-2.lua new file mode 100644 index 0000000000..db76016a8e --- /dev/null +++ b/challenge-112/abigail/lua/ch-2.lua @@ -0,0 +1,24 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1.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 + +for line in io . lines () do + print (fib (tonumber (line))) +end -- cgit From d498fd3ea3e1df8c647b83e5e4922e6af971960b Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 11 May 2021 19:29:08 +0200 Subject: Use closed form to calculate Fibonacci numbers for week 112, part 2. --- challenge-112/abigail/lua/ch-2.lua | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'challenge-112/abigail/lua/ch-2.lua') 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 -- cgit