把第一行的数算出来后,后续每行每个位置都是上一行的下一列那个数-1;

while(n=readline()){
    //定义二维数组
    let arr=[];
    for(let i=0,j=n;i<n;i++,j--){
        arr[i]=new Array(j);
    }
    //给二维数组赋值
    for(let i=0;i<n;i++){
        for(let j=n-i-1;j>=0;j--){
            if(i==0){
                arr[i][j]=calc(i,j)
            }else{
                arr[i][j]=arr[i-1][j+1]-1;
            }
        }
    }
    //输出二维数组
    arr.forEach(item=>{
        console.log(item.join(" "))
    })
}
//定义第一行计算函数
function calc(i,j){
    let sum=0
    for(let p=i+1;p<=j+1;p++){
        sum+=i+p;
    }
    return sum
}