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 迴圈迭代接收到的作為引數的矩陣的每一行和每一列,並分別列印每一行和每一列作為邊界元素。

更新時間: 2023年2月16日

122 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

立即開始
廣告

© . All rights reserved.