Go語言程式列印矩陣邊界元素
什麼是邊界元素?
在 Go 程式語言中,矩陣的邊界元素是指位於矩陣外邊緣的元素。它們位於四個位置,即第一行、最後一行、第一列和最後一列。在一個大小為 m x n 的矩陣中,頂部邊界元素是矩陣[0][0] 到矩陣[0][n-1] 範圍內的元素,底部邊界元素是矩陣[m-1][0] 到矩陣[m-1][n-1] 範圍內的元素,左側邊界元素是矩陣[0][0] 到矩陣[m-1][0] 範圍內的元素,右側邊界元素是矩陣[0][n-1] 到矩陣[m-1][n-1] 範圍內的元素。
演算法
步驟 1 − 首先,我們需要匯入 fmt 包。
步驟 2 − 然後,建立一個名為 printBoundary() 的函式,該函式接收矩陣作為引數。將獲得的矩陣的行和列儲存在不同的變數中。
步驟 3 − 現在,逐一迭代矩陣的每一行和每一列,並將相應的行和列列印為邊界元素。
步驟 4 − 在這裡,請注意,為了避免多次列印角元素,從 rows – 2 位置開始下一個迴圈。
步驟 5 − 迭代完每一行和每一列後,列印相應的元素。現在,開始 main() 函式。在這裡初始化一個矩陣併為其賦值。
步驟 6 − 然後,使用 for 迴圈和 fmt.Println() 函式在螢幕上列印相應的矩陣。列印完矩陣後,透過將矩陣作為引數傳遞給它來呼叫 printBoundary() 函式。
步驟 7 − 透過這種方式列印矩陣的邊界元素。現在,使用更多矩陣並在螢幕上列印它們的邊界元素。
示例
在本示例中,我們將編寫一個 Go 語言程式,使用外部函式列印矩陣的邊界元素。我們將按順時針方向列印邊界元素,並使用 for 迴圈以及 if 條件語句來實現結果。
package main
import "fmt"
func printBoundary(matrix [][]int) {
rows := len(matrix)
cols := len(matrix[0])
// Print the first row
for i := 0; i < cols; i++ {
fmt.Print(matrix[0][i], " ")
}
// Print the last column
for i := 1; i < rows; i++ {
fmt.Print(matrix[i][cols-1], " ")
}
// Print the last row
for i := cols - 2; i >= 0; i-- {
fmt.Print(matrix[rows-1][i], " ")
}
// Print the first column
for i := rows - 2; i > 0; i-- {
fmt.Print(matrix[i][0], " ")
}
}
func main() {
matrix1 := [][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
var rows int = len(matrix1)
var cols int = len(matrix1[0])
// printing matrix
fmt.Println("The given matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix1[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix1)
fmt.Println()
fmt.Println()
matrix2 := [][]int{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}
rows = len(matrix2)
cols = len(matrix2[0])
// printing matrix
fmt.Println("The second matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix2[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix2)
fmt.Println()
fmt.Println()
matrix3 := [][]int{{1, 2, 3}, {4, 5, 6}}
rows = len(matrix3)
cols = len(matrix3[0])
// printing matrix
fmt.Println("The given matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix3[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix3)
fmt.Println()
fmt.Println()
}
輸出
The given matrix is: 1 2 3 4 5 6 7 8 9 Boundary elements of above matrix is: 1 2 3 6 9 8 7 4 The second matrix is: 1 2 3 4 5 6 7 8 9 10 11 12 Boundary elements of above matrix is: 1 2 3 4 8 12 11 10 9 5 The given matrix is: 1 2 3 4 5 6 Boundary elements of above matrix is: 1 2 3 6 5 4
結論
我們已成功編譯並執行了一個 Go 語言程式,以使用外部函式獲取矩陣的邊界元素。該函式使用不同的 for 迴圈迭代接收到的作為引數的矩陣的每一行和每一列,並分別列印每一行和每一列作為邊界元素。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP