Golang程序 计算矩阵元素之和

什么是矩阵?

矩阵是按行和列排列的数字的集合,它是一个二维数组。这里我们将用三个例子来寻找元素之和,并使用Golang程序来比较矩阵的每个元素是否相同。



算法

  • 第1步 – 导入fmt包。
  • 第2步 – 现在我们需要启动main()函数。

  • 第 3步 – 然后我们要创建一个矩阵,命名为matrixA。

  • 第4步 – 使用fmt.Println()函数在屏幕上打印矩阵。

  • 第 5步 – 初始化一个名为sum的int类型的新变量,以保存结果的总和。

  • 第 6步 – 为了找到元素的总和,使用for循环来迭代矩阵。

  • 第 7步 – 使用第一个for循环来获得矩阵的行,而第二个for循环给我们提供矩阵的列。



  • 第 8步 – 一旦循环遍历了矩阵元素,就向总和变量添加数值来更新它。

  • 第 9步 – 在屏幕上打印出矩阵的总和。

例子1

我们将使用for循环遍历矩阵,找到其元素的总和并打印在屏幕上。

package main
import "fmt"
func main() {
   matrix := [3][3]int{
      {0, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   fmt.Println("The given matrix is:")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(matrix[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   var sum int = 0
   for i := 0; i < len(matrix); i++ {
      for j := 0; j < len(matrix[i]); j++ {
         sum += matrix[i][j]
      }
   }
   fmt.Println("Sum of matrix elements:", sum)
}

输出

The given matrix is:
0   1   2   
4   5   6   
8   9   10  

Sum of matrix elements: 45

例2

在这个例子中,我们将使用Go编程中的range函数求出矩阵元素的和。

package main
import "fmt"
func main() {
   matrix := [3][3]int{
      {20, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   fmt.Println("The given matrix is:")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(matrix[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   var sum int = 0
   for _, row := range matrix {
      for _, element := range row {
         sum += element
      }
   }
   fmt.Println("Sum of matrix elements:", sum)
}

输出

The given matrix is:
20  1   2   
4   5   6   
8   9   10  

Sum of matrix elements: 65

例3

在这个例子中,我们将使用递归的方法,用go编程来寻找一个矩阵元素的和

package main
import "fmt"
// creating a funciton to find sum through recursion
func sumMatrix(matrix [3][3]int, row int, col int) int {
   if row == len(matrix) {
      return 0
   }
   if col == len(matrix[row]) {
      return sumMatrix(matrix, row+1, 0)
   }
   return matrix[row][col] + sumMatrix(matrix, row, col+1)
}
func main() {
   matrix := [3][3]int{
      {20, 1, 2},
      {4, 50, 6},
      {8, 9, 10},
   }
   fmt.Println("The given matrix is:")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(matrix[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   result := sumMatrix(matrix, 0, 0)
   fmt.Println("Sum of matrix elements:", result)
}

输出

The given matrix is:
20  1   2   
4   50  6   
8   9   10  

Sum of matrix elements: 110

结论

我们已经成功地编译并执行了一个Go语言程序,将其与实例一起添加到矩阵中。我们在这里使用了三种方法,在前两种方法中,我们分别使用for循环和range函数来迭代矩阵,而在最后一个例子中,我们使用递归方法来计算总和。请注意,第三种方法在功能上更有效,而且执行的时间更短。