From 67a4f0dc45c521dec94bf7bb7a610b35667eca48 Mon Sep 17 00:00:00 2001 From: Nour B <56294154+nourrrrrrrr@users.noreply.github.com> Date: Tue, 5 May 2020 13:22:32 +0100 Subject: [PATCH] Add Pascal's triangle. (#149) * Add Pascal's triangle. * Update pascalTriangle.js * Update pascalTriangle.js Co-authored-by: vinayak --- maths/pascalTriangle.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 maths/pascalTriangle.js diff --git a/maths/pascalTriangle.js b/maths/pascalTriangle.js new file mode 100644 index 000000000..bb0d468d2 --- /dev/null +++ b/maths/pascalTriangle.js @@ -0,0 +1,31 @@ +const numRows = 5 + +var generate = function (numRows) { + const triangle = [[1], [1, 1]] + + if (numRows === 0) { + return [] + } else if (numRows === 1) { + return [[1]] + } else if (numRows === 2) { + return [[1], [1, 1]] + } else { + for (let i = 2; i < numRows; i++) { + addRow(triangle) + } + } + return triangle +} +var addRow = function (triangle) { + const previous = triangle[triangle.length - 1] + const newRow = [1] + for (let i = 0; i < previous.length - 1; i++) { + const current = previous[i] + const next = previous[i + 1] + newRow.push(current + next) + } + newRow.push(1) + return triangle.push(newRow) +} + +generate(numRows)