JavaScript:
const res = []
let n = 5;
const t = x => (x * (x + 1)) / 2;
const row = (a, z) => {
const r = [];
for (let i = z; i >= a; i--) {
r.push(t(n) + 1 - i);
}
return r;
}
for (let i = n; i >= 1; i--) {
res.push(row(t(i - 1) + 1, t(i)));
}
for (let i = 0; i < res.length; i++) {
for (let j = i + 1; j < res[i].length; j++) {
[res[i][j], res[j][i]] = [res[j][i], res[i][j]];
}
}
console.log(res.reverse());