Swift 程式列印帕斯卡三角形
本教程將討論如何編寫 Swift 程式來列印帕斯卡三角形。
帕斯卡三角形是二項式係數的三角形排列。它是一個無限的等邊三角形,始終遵循以下規則:將上面一行中的兩個數字相加得到下面一行的數字。例如,第一行的初始數字是 1,所以第二行的數字是第一行中兩個數字的和,即 0+1 和 1+0,所以我們得到 [1, 1]。現在第三行的數字是第二行中兩個數字的和,即 0+1、1+1、1+0,所以我們得到第三行 [1, 2, 1],以此類推…
以下是演示 −

輸入
假設我們的給定輸入為 −
Total number of rows: 10
輸出
期望的輸出為 −
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
演算法
以下是演算法 −
步驟 1 − 建立一個函式
步驟 2 − 宣告一個名為 res 的變數來儲存結果。
步驟 3 − 檢查行數是否等於 0。如果是,則返回。
步驟 4 − 執行一個 for 迴圈來處理總行數。此迴圈從 0 到 row-1(或 0..<row)
步驟 5 − 宣告另一個名為 Cres 的變數來儲存當前結果。
步驟 6 − 執行巢狀的 for 迴圈來列印空格。此迴圈從 0..<(row-x-1) 開始。
步驟 7 − 執行另一個巢狀的 for 迴圈來列印帕斯卡三角形的數值。在這裡,我們將上面一行中的兩個數字相加以找到下面一行的數字。
步驟 8 − 呼叫函式並將總行數作為引數傳遞。
步驟 9 − 列印輸出。
示例 1
以下程式演示瞭如何列印帕斯卡三角形
import Swift
import Foundation
func createPascalTriangle(row: Int)
{
var res = [[Int]]()
if (row == 0)
{
return
}
for x in 0..<row
{
var Cres = [Int]()
for _ in 0..<(row-x-1)
{
print(" ", terminator:"")
}
for y in 0...x
{
if(x>1 && y>0 && y<x)
{
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
print("\(val) ", terminator: "")
} else {
Cres.append(1)
print("\(1) ", terminator: "")
}
}
res.append(Cres)
print("")
}
}
var num = 5
createPascalTriangle(row:num)
輸出
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
在上面的程式碼中,我們以三角形圖案顯示帕斯卡三角形的數值。在這裡,為了找到帕斯卡三角形的數值,我們使用以下程式碼將上面一行中的兩個數字相加以獲得下面一行的數字:
for y in 0...x{
if(x>1 && y>0 && y<x){
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
print("\(val) ", terminator: "")
} else {
Cres.append(1)
print("\(1) ", terminator: "")
}
示例 2
以下程式演示瞭如何在 1 行中列印帕斯卡三角形
import Swift
import Foundation
func createPascalTriangle(row: Int)->[[Int]]{
var res = [[Int]]()
if (row == 0){
return res
}
for x in 0..<row{
var Cres = [Int]()
for y in 0...x{
if(x>1 && y>0 && y<x){
let val = res[x-1][y] + res[x-1][y-1]
Cres.append(val)
} else {
Cres.append(1)
}
}
res.append(Cres)
}
return res
}
var num = 5
print(createPascalTriangle(row:num))
輸出
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
在上面的程式碼中,我們以陣列的形式顯示帕斯卡三角形的數值。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP