Files
JavaScript/Maths/PascalTriangle.js
Piotr Idzik 10febce31a style: cleanup PascalTriangle (#1606)
* tests: add missing tests for `PascalTriangle`

* style: remove redundant branch in `generate`

* tests: simplify tests of `PascalTriangle`
2024-02-09 22:31:20 +05:30

29 lines
578 B
JavaScript

const addRow = (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)
}
const generate = (numRows) => {
const triangle = [[1], [1, 1]]
if (numRows === 0) {
return []
} else if (numRows === 1) {
return [[1]]
} else {
for (let i = 2; i < numRows; i++) {
addRow(triangle)
}
}
return triangle
}
export { generate }