题解 | #蛇形矩阵#
蛇形矩阵
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() } }