Swift 列印對角矩陣模式的程式
本教程將討論如何編寫 Swift 程式來列印對角矩陣模式。
對角矩陣是指除主對角線元素外,所有元素均為 0 的矩陣。或者我們可以說,在對角矩陣中,非對角塊為 0,主對角塊為方陣。
要建立對角矩陣模式,我們可以使用以下任何一種方法:
使用巢狀 for 迴圈
使用 stride 函式
以下是演示:
輸入
假設我們的給定輸入是:
Num = 3
輸出
期望的輸出將是:
1 0 0 0 2 0 0 0 3
方法 1 - 使用巢狀 for 迴圈
我們可以使用巢狀 for 迴圈建立對角矩陣或任何其他模式。這裡每個 for 迴圈處理不同的任務,例如最外層的 for 迴圈用於新行,巢狀的 for 迴圈用於列印對角矩陣。
示例
下面的程式演示瞭如何使用巢狀 for 迴圈列印對角矩陣模式。
import Foundation import Glibc // Size of the pattern let num = 4 // Handling the rows of the matrix for m in 1...num { // Creating diagonal matrix for n in 1...num { if m == n { print(n, terminator : " ") } else { print(0, terminator : " ") } } print(" ") }
輸出
1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4
在上面的程式碼中,我們使用巢狀 for 迴圈來列印對角矩陣。最外層的 for 迴圈(從 1 到 4)用於處理要列印的行數,每行以換行符開頭。現在,巢狀的 for 迴圈(從 1 到 num)用於列印對角矩陣。如果 m == n,則列印數字;否則列印 0。
方法 2 - 使用 stride 函式
Swift 提供了一個名為 stride() 的內建函式。stride() 函式用於以遞增或遞減的方式從一個值移動到另一個值。或者我們可以說 stride() 函式返回從起始值開始但不包括結束值的序列,並且給定序列中的每個值都以給定量遞增。
語法
以下是語法:
stride(from:startValue, to: endValue, by:count)
這裡:
from - 表示給定序列使用的起始值。
to - 表示限制給定序列的結束值
by - 表示每次迭代的步進量,正值表示向上迭代或遞增,負值表示向下迭代或遞減。
示例
下面的程式演示瞭如何使用 stride() 函式列印對角矩陣模式。
import Foundation import Glibc // Size of the pattern let num = 8 // Handle the length of the matrix for m in stride(from: 1, to: num, by: 1) { // Printing diagonal matrix pattern // Using stride() function for n in stride(from: 1, to: num, by: 1) { if m == n { print(n, terminator : " ") } else { print(0, terminator : " ") } } // Adding new line print("") }
輸出
1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 7
在上面的程式碼中,我們使用巢狀 for 迴圈以及 stride() 函式。最外層的 for 迴圈用於處理要列印的行數,每行以換行符開頭。巢狀的 for 迴圈使用 stride() 函式列印對角矩陣:
for n in stride(from: 1, to: num, by: 1) { if m == n { print(n, terminator : " ") } else { print(0, terminator : " ") } }
這裡的迭代從 1 開始到 num,每次迭代增加 1。為了列印對角矩陣,我們檢查 m == n。如果條件為真,則列印 n;否則列印 0。