题解 | #蛇形矩阵#

蛇形矩阵

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

package main

import (
	"fmt"
)

func main() {
	n := 0
	fmt.Scan(&n)

	//1. 先生成第一列

	firstCo := make([]int, 1)
	firstCo[0] = 1

	for i := 1; i < n; i++ {
		firstCo = append(firstCo, firstCo[i-1]+i)
	}

	//fmt.Println(firstCo)

	//2. 生成每一行

	for i := 0; i < n; i++ {
		fmt.Printf("%v ", firstCo[i]) //每一行的第一个元素直接打印出来
                res := firstCo[i]             //将每行的第一个元素存储,目的是为了后面累加计算出该行后面的数字

        //有了第一列 根据每一列的第一个数累加得到每一行的数
        //假设行号列号都是从1开始a11 表示最开始的第一个元素,也就是 1
        //例如第一行的第二个元素是3, a12 = 3 = 第一个元素a11 + 第一行行行号1 (i+1) + 3的列号2减一(j)
        //第二列的第二个元素是5, a22 = 5 = a21 + 2 + (2-1)
        //第二列的第三个元素9, a23 = 9 = a22 + 2 +(3-1)

		for j := 1; j < n-i; j++ {
            res = res+i+1+j
			fmt.Printf("%v ", res)
            
		}
        fmt.Println()
	}

}

全部评论

相关推荐

28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务