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迴圈,我們都可以計算矩陣對角線的和。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP