Swift程序计算矩阵对角线之和
在这篇文章中,我们将学习如何编写一个Swift程序来计算矩阵对角线的和。每个矩阵都有两条对角线,称为主对角线和副对角线。例如,我们有以下5x5的方阵:
2 3 4 5 6 4 6 7 8 9 1 1 1 3 4 4 0 4 0 4 0 0 1 1 1
因此,主对角线由元素2、6、1、0、1组成,副对角线由元素6、8、1、0、0组成。因此,两条对角线的和为:
Primary diagonal = 2+6+1+0+1 = 10 Secondary diagonal = 6+8+1+0+0 = 15
这里我们使用以下方法:
使用for循环
使用嵌套for循环
方法1:使用For循环
为了计算矩阵的两条对角线的和,我们可以使用单个for循环。
算法
步骤1 - 创建一个函数。
步骤2 - 在此函数中,运行for循环以迭代给定矩阵的每个元素。
步骤3 - 找到主对角线的和。
leftDiagonal += arr[x][x]
步骤4 - 找到副对角线的和。
rightDiagonal += arr[x][size - x - 1]
步骤5 - 创建一个矩阵。
步骤6 - 调用函数并将矩阵传递给它。
步骤7 - 打印输出。
示例
以下是使用for循环计算矩阵对角线之和的Swift程序。
import Foundation import Glibc // Size of the array var size = 4 // Function to find the sum of the diagonals func diagonalSum(arr:[[Int]]){ var leftDiagonal = 0 var rightDiagonal = 0 for x in 0..<size{ // Find the sum of left diagonal leftDiagonal += arr[x][x] // Find the sum of left diagonal rightDiagonal += arr[x][size - x - 1] } print("Sum of left diagonal", leftDiagonal) print("Sum of right diagonal", rightDiagonal) } // Creating 4x4 matrix of integer type var myArray : [[Int]] = [[2, 3, 4, 3], [5, 6, 7, 1], [8, 3, 2, 6], [4, 6, 4, 2]] print("Array:") for x in 0..<size{ for y in 0..<size{ print(myArray[x][y], terminator:" ") } print("\n") } diagonalSum(arr:myArray)
输出
Array: 2 3 4 3 5 6 7 1 8 3 2 6 4 6 4 2 Sum of left diagonal 12 Sum of right diagonal 17
在上面的代码中,我们有一个整数类型的矩阵。现在我们创建一个函数来查找给定矩阵的两条对角线的和。在这个函数中,我们运行一个for循环来迭代给定矩阵的每个元素,然后找到主对角线和副对角线的和。
方法2:使用嵌套For循环
我们也可以使用嵌套for循环来找到矩阵的主对角线和副对角线的和。
算法
步骤1 - 创建一个函数。
步骤2 - 在此函数中,运行嵌套for循环以迭代给定矩阵的每一行和每一列。
步骤3 - 找到主对角线并添加其元素。
if (x == y){ leftDiagonal += mxt[x][y] }
步骤4 - 找到副对角线并添加其元素。
if ((x + y) == (size - 1)){ rightDiagonal += mxt[x][y] }
步骤5 - 创建一个矩阵。
步骤6 - 调用函数并将矩阵传递给它。
步骤7 - 打印输出。
示例
以下是使用嵌套for循环计算矩阵对角线之和的Swift程序。
import Foundation import Glibc // Size of the array var size = 3 // Function to find the sum of the diagonals func diagonalSum(mxt:[[Int]]){ var leftDiagonal = 0 var rightDiagonal = 0 for x in 0..<size{ for y in 0..<size{ // Find the sum of left diagonal if (x == y) { leftDiagonal += mxt[x][y] } // Find the sum of left diagonal if ((x + y) == (size - 1)) { rightDiagonal += mxt[x][y] } } } print("Sum of left diagonal:", leftDiagonal) print("Sum of right diagonal:", rightDiagonal) } // Creating 3x3 matrix of integer type var matrix : [[Int]] = [[1, 3, 40], [2, 16, 7], [10, 3, 12]] print("Matrix:") for x in 0..<size{ for y in 0..<size{ print(matrix[x][y], terminator:" ") } print("\n") } // Calling the function diagonalSum(mxt:matrix)
输出
Matrix: 1 3 40 2 16 7 10 3 12 Sum of left diagonal: 29 Sum of right diagonal: 66
在上面的代码中,我们有一个3x3的整数类型矩阵。现在我们创建一个函数来查找给定矩阵的两条对角线的和。在这个函数中,我们运行嵌套循环来迭代给定矩阵的每一行和每一列。现在我们使用行-列条件(行 = 列)找到主对角线,然后添加主对角线的元素。使用行-列条件(行 = 行数 - 列 - 1)找到副对角线,然后添加副对角线的元素。
结论
方阵有两条对角线:主对角线(从左到右)和副对角线(从右到左),长度相等。因此,使用嵌套循环或单个for循环,我们都可以计算矩阵对角线的和。