From 2292cff0b3bd0bc5e2dadbecee8a4f50cb9fb840 Mon Sep 17 00:00:00 2001 From: Abigail Date: Mon, 10 May 2021 21:52:24 +0200 Subject: Node.js solutions for week 112 --- challenge-112/abigail/node/ch-2.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 challenge-112/abigail/node/ch-2.js (limited to 'challenge-112/abigail/node/ch-2.js') diff --git a/challenge-112/abigail/node/ch-2.js b/challenge-112/abigail/node/ch-2.js new file mode 100644 index 0000000000..aa80e0970d --- /dev/null +++ b/challenge-112/abigail/node/ch-2.js @@ -0,0 +1,20 @@ +#!/usr/local/bin/node + +// +// See ../README.md +// + +// +// 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] +} + + require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', _ => console . log (fib (+ _))) -- 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/node/ch-2.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'challenge-112/abigail/node/ch-2.js') 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) +)) -- cgit