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') 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