aboutsummaryrefslogtreecommitdiff
path: root/challenge-112/abigail/node
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/node
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/node')
-rw-r--r--challenge-112/abigail/node/ch-2.js12
1 files changed, 5 insertions, 7 deletions
diff --git a/challenge-112/abigail/node/ch-2.js b/challenge-112/abigail/node/ch-2.js
index aa80e0970d..2c06c8fdcd 100644
--- a/challenge-112/abigail/node/ch-2.js
+++ b/challenge-112/abigail/node/ch-2.js
@@ -8,13 +8,11 @@
// Run as: node ch-2.js < input-file
//
-let cache = {0: 1, 1: 1}
-
-function fib (n) {
- cache [n] = cache [n] || fib (n - 1) + fib (n - 2)
- return cache [n]
-}
+let SQRT5 = Math . sqrt (5)
+let PHI = (1 + SQRT5) / 2
require ('readline')
. createInterface ({input: process . stdin})
-. on ('line', _ => console . log (fib (+ _)))
+. on ('line', _ => console . log (
+ Math . round (Math . pow (PHI, +_ + 1) / SQRT5)
+))