From efed033499db49c5bb592b508c4d96832bff9ae7 Mon Sep 17 00:00:00 2001 From: Nour B <56294154+nourrrrrrrr@users.noreply.github.com> Date: Tue, 5 May 2020 12:57:31 +0100 Subject: [PATCH 1/3] Add Pascal's triangle. --- maths/pascalTriangle.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 maths/pascalTriangle.js diff --git a/maths/pascalTriangle.js b/maths/pascalTriangle.js new file mode 100644 index 0000000000..5842e720e4 --- /dev/null +++ b/maths/pascalTriangle.js @@ -0,0 +1,16 @@ +/** + * @param {number} lineNumber - zero based. + * @return {number[]} + */ +export default function pascalTriangle(lineNumber) { + const currentLine = [1]; + + const currentLineSize = lineNumber + 1; + + for (let numIndex = 1; numIndex < currentLineSize; numIndex += 1) { + // See explanation of this formula in README. + currentLine[numIndex] = currentLine[numIndex - 1] * (lineNumber - numIndex + 1) / numIndex; + } + + return currentLine; +} From c5a4c050801b3d756c9b528fe18d78602c803889 Mon Sep 17 00:00:00 2001 From: Nour B <56294154+nourrrrrrrr@users.noreply.github.com> Date: Tue, 5 May 2020 13:02:13 +0100 Subject: [PATCH 2/3] Update pascalTriangle.js --- maths/pascalTriangle.js | 45 ++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/maths/pascalTriangle.js b/maths/pascalTriangle.js index 5842e720e4..dd52067aa8 100644 --- a/maths/pascalTriangle.js +++ b/maths/pascalTriangle.js @@ -1,16 +1,33 @@ -/** - * @param {number} lineNumber - zero based. - * @return {number[]} - */ -export default function pascalTriangle(lineNumber) { - const currentLine = [1]; +let numRows = 5 - const currentLineSize = lineNumber + 1; - - for (let numIndex = 1; numIndex < currentLineSize; numIndex += 1) { - // See explanation of this formula in README. - currentLine[numIndex] = currentLine[numIndex - 1] * (lineNumber - numIndex + 1) / numIndex; - } - - return currentLine; +var generate = function(numRows) { + let 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){ + let previous = triangle[triangle.length - 1] + let newRow = [1] + for(let i = 0; i < previous.length - 1; i++){ + let current = previous[i] + let next = previous[i+1] + newRow.push(current + next) + } + newRow.push(1) + return triangle.push(newRow) + } + +generate(numRows) From 34ee21d64bcf447e59e02ce8567c73934299d71f Mon Sep 17 00:00:00 2001 From: vinayak Date: Tue, 5 May 2020 17:45:54 +0530 Subject: [PATCH 3/3] Update pascalTriangle.js --- maths/pascalTriangle.js | 54 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/maths/pascalTriangle.js b/maths/pascalTriangle.js index dd52067aa8..bb0d468d2b 100644 --- a/maths/pascalTriangle.js +++ b/maths/pascalTriangle.js @@ -1,33 +1,31 @@ -let numRows = 5 +const numRows = 5 -var generate = function(numRows) { - let 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){ - let previous = triangle[triangle.length - 1] - let newRow = [1] - for(let i = 0; i < previous.length - 1; i++){ - let current = previous[i] - let next = previous[i+1] - newRow.push(current + next) +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) } - newRow.push(1) - return triangle.push(newRow) - + } + 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)