RosettaCodeData/Task/Pascals-triangle/JavaScript/pascals-triangle-6.js

17 lines
368 B
JavaScript

const aux = (() => {
const layers = [[1], [1]]
return n => {
if(layers[n]) return layers[n]
const prevLayer = aux(n - 1)
const shifted = [0, ...prevLayer]
layers[n] = shifted.map((x, i) => (prevLayer[i] || 0) + x)
return layers[n]
}
})()
const pascal = n => {
for(let i = 1; i <= n; i++) {
console.log(aux(i).join(' '))
}
}
pascal(8)