题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
package main
import (
"fmt"
)
func main() {
n := 0
fmt.Scanln(&n)
arrN := make([][]int, n)
for i := 0; i < len(arrN); i++ {
arrN[i] = make([]int, n)
}
sum := 1
for i := 0; i < n; i++ {
for j := 0; j <= i; j++ {
arrN[i-j][j] = sum
sum++
}
}
//输出
for i := 0; i < n; i++ {
for j := 0; j < n-i; j++ {
fmt.Printf("%d ", arrN[i][j])
}
fmt.Println()
}
}
错误代码:
以下是使用Golang实现输出蛇形矩阵的代码:
package main
import "fmt"
func main() {
var n int
fmt.Scanln(&n)
matrix := make([][]int, n)
for i := 0; i < n; i++ {
matrix[i] = make([]int, n-i)
}
num := 1
for i := 0; i < n; i++ {
for j := 0; j < n-i; j++ {
matrix[i][j] = num
num++
}
}
for i := 0; i < n; i++ {
for j := 0; j < n-i; j++ {
fmt.Printf("%d ", matrix[i][j])
}
fmt.Println()
}
}
你可以使用上述代码输出一个N行的蛇形矩阵。例如,当输入为5时,输出的蛇形矩阵为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
错误代码:
package main
import "fmt"
func main() {
var n int
fmt.Scanln(&n)
matrix := make([][]int, n)
for i := 0; i < n; i++ {
matrix[i] = make([]int, n)
}
num := 1
for i := 0; i < n; i++ {
if i%2 == 0 {
for j := 0; j < n; j++ {
matrix[i][j] = num
num++
}
} else {
for j := n - 1; j >= 0; j-- {
matrix[i][j] = num
num++
}
}
}
for i := 0; i < n; i++ {
for j := 0; j < n-i; j++ {
fmt.Printf("%d ", matrix[i][j])
}
fmt.Println()
}
}