题解 | #蛇形矩阵#

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

把第一行的数算出来后,后续每行每个位置都是上一行的下一列那个数-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
}
全部评论

相关推荐

讯飞老萌新:站住!有人25还没有找到工作的吗
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务