Pascal's triangle: Difference between revisions
Content added Content deleted
(→ES6) |
|||
Line 3,533: | Line 3,533: | ||
1 7 21 35 35 21 7 1 |
1 7 21 35 35 21 7 1 |
||
</pre> |
</pre> |
||
====Recursive - memoized==== |
|||
<lang javascript> |
|||
const aux = (() => { |
|||
const layers = [[1], [1]] |
|||
return n => { |
|||
if(layers[n]) return layers[n]; |
|||
const result = Array.from({ length: 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) |
|||
</lang> |
|||
=={{header|jq}}== |
=={{header|jq}}== |