From a7ab6082a1abc2a010c401786927f41c0e4cd330 Mon Sep 17 00:00:00 2001 From: Satzyakiz <40039258+Satzyakiz@users.noreply.github.com> Date: Fri, 8 May 2020 18:52:14 +0530 Subject: [PATCH 1/3] changes made --- Algorithms/Dynamic-Programming/Fibonacci.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Algorithms/Dynamic-Programming/Fibonacci.js b/Algorithms/Dynamic-Programming/Fibonacci.js index dce3bc63b4..6b16708ce9 100644 --- a/Algorithms/Dynamic-Programming/Fibonacci.js +++ b/Algorithms/Dynamic-Programming/Fibonacci.js @@ -23,3 +23,17 @@ fib(2) fib(200) fib(5) fib(10) + +//function without using recursion +function fibonacci(n) { + const fibArr = [0,1]; //Initialized using base condition + + for(let i=2; i<=n; i++){ + fibArr.push( fibArr[i-1] + fibArr[i-2] ); + } + + return fibArr[n-1]; +} + +fibonacci(2); +fibonacci(5); From 0c0029eb2493b7f684c0a2a579fdb33908113532 Mon Sep 17 00:00:00 2001 From: vinayak Date: Sat, 9 May 2020 09:54:02 +0530 Subject: [PATCH 2/3] Update Fibonacci.js --- Maths/Fibonacci.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Maths/Fibonacci.js b/Maths/Fibonacci.js index 3f8be74322..9a4361781d 100644 --- a/Maths/Fibonacci.js +++ b/Maths/Fibonacci.js @@ -48,6 +48,27 @@ const FibonacciRecursiveDP = (stairs) => { return res } +// Algorithms +// Calculates Fibonacci(n) such that Fibonacci(n) = Fibonacci(n - 1) + Fibonacci(n - 2) +// Fibonacci(0) = Fibonacci(1) = 1 +// Uses a bottom up dynamic programming approach +// Solve each sub-problem once, using results of previous sub-problems +// which are n-1 and n-2 for Fibonacci numbers +// Although this algorithm is linear in space and time as a function +// of the input value n, it is exponential in the size of n as +// a function of the number of input bits +// @Satzyakiz + +const FibonacciDpWithoutRecursion = (number) => { + const table = [] + table.push(1) + table.push(1) + for (var i = 2; i < number; ++i) { + table.push(table[i - 1] + table[i - 2]) + } + return (table) +} + // testing console.log(FibonacciIterative(5)) @@ -57,3 +78,6 @@ console.log(FibonacciRecursive(5)) console.log(FibonacciRecursiveDP(5)) // Output: 5 + +console.log(FibonacciDpWithoutRecursion(5)) +// Output: [ 1, 1, 2, 3, 5 ] From 6179375fea8859cb55f4b40af9889856040a344d Mon Sep 17 00:00:00 2001 From: itsvinayak Date: Sat, 9 May 2020 10:00:26 +0530 Subject: [PATCH 3/3] fib --- Algorithms/Dynamic-Programming/Fibonacci.js | 39 --------------------- 1 file changed, 39 deletions(-) delete mode 100644 Algorithms/Dynamic-Programming/Fibonacci.js diff --git a/Algorithms/Dynamic-Programming/Fibonacci.js b/Algorithms/Dynamic-Programming/Fibonacci.js deleted file mode 100644 index 6b16708ce9..0000000000 --- a/Algorithms/Dynamic-Programming/Fibonacci.js +++ /dev/null @@ -1,39 +0,0 @@ -// Calculates fib(n) such that fib(n) = fib(n - 1) + fib(n - 2) -// fib(0) = fib(1) = 1 -// Uses a bottom up dynamic programming approach -// Solve each subproblem once, using results of previous subproblems, -// which are n-1 and n-2 for Fibonacci numbers - -// Although this algorithm is linear in space and time as a function -// of the input value n, it is exponential in the size of n as -// a function of the number of input bits - -function fib (n) { - var table = [] - table.push(1) - table.push(1) - for (var i = 2; i < n; ++i) { - table.push(table[i - 1] + table[i - 2]) - } - console.log('Fibonacci #%d = %d', n, table[n - 1]) -} - -fib(1) -fib(2) -fib(200) -fib(5) -fib(10) - -//function without using recursion -function fibonacci(n) { - const fibArr = [0,1]; //Initialized using base condition - - for(let i=2; i<=n; i++){ - fibArr.push( fibArr[i-1] + fibArr[i-2] ); - } - - return fibArr[n-1]; -} - -fibonacci(2); -fibonacci(5);